C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果
本文實(shí)例為大家分享了C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果的具體代碼,供大家參考,具體內(nèi)容如下
1 題目描述
(1)Form1窗體設(shè)計(jì)界面如下:

(2)窗體左側(cè)為一個(gè)靠左??康膒anel,其中包含一個(gè)label控件;
(3)初試狀態(tài)時(shí),“水平移動(dòng)”選中,當(dāng)用戶單擊“開始移動(dòng)”按鈕時(shí),label在panel中水平從左向右移動(dòng),單擊“暫停移動(dòng)”按鈕時(shí),label停在原位置不動(dòng);
(4)在label移動(dòng)過程中,若用戶切換移動(dòng)方式,則彈出對(duì)話框,提示先暫停移動(dòng);在label暫停移動(dòng)時(shí),用戶切換移動(dòng)方式,label在原位置以新的移動(dòng)方式進(jìn)行移動(dòng);
2 源碼詳解
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Csharp7_2
{
public partial class Form1 : Form
{
static int x = 0;
static int y = 0;
static int flag = 0;
static int v = 0;
static int h = 0;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (radioButton1.Checked && flag == 1)
{
if (label1.Location.X + label1.Size.Width >= (panel1.Location.X + panel1.Size.Width))
{
v = 1;
}
if (label1.Location.X < panel1.Location.X)
{
v = 0;
}
if (v == 0)
{
x = 1;
y = 0;
}
if (v == 1)
{
x = -1;
y = 0;
}
}
if (radioButton2.Checked && flag == 1)
{
if (label1.Location.Y + label1.Size.Height >= (panel1.Location.Y + panel1.Size.Height))
{
h = 1;
}
if (label1.Location.Y < panel1.Location.Y)
{
h = 0;
}
if (h == 0)
{
x = 0;
y = 1;
}
if (h == 1)
{
x = 0;
y = -1;
}
}
if (flag == 1)
{
Point p = new Point(label1.Location.X + x, label1.Location.Y + y);
label1.Location = p;
}
}
private void button1_Click(object sender, EventArgs e)
{
flag = 1;
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
flag = 0;
timer1.Stop();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true && flag == 1)
{
flag = 0;
radioButton2.Checked = true;
radioButton1.Checked = false;
MessageBox.Show("請(qǐng)先停止移動(dòng)");
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true && flag == 1)
{
flag = 0;
radioButton1.Checked = true;
radioButton2.Checked = false;
MessageBox.Show("請(qǐng)先停止移動(dòng)");
}
}
}
}
3 實(shí)現(xiàn)效果



以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#中數(shù)據(jù)的傳遞以及ToolStripProgressBar
本文主要介紹了C#的數(shù)據(jù)傳遞方法以及ToolStripProgressBar進(jìn)度條的使用。希望對(duì)大家有所幫助,話不多說,請(qǐng)看下面代碼2016-11-11
Unity圖形學(xué)之ShaderLab入門基礎(chǔ)
Unity中所有Shader文件都通過一種陳述性語言進(jìn)行描述,稱為“ShaderLab”, 這篇文章主要介紹了Unity圖形學(xué)之ShaderLab入門基礎(chǔ),需要的朋友可以參考下2022-01-01
基于C#的圖表控件庫 ScottPlot編譯visual studio 2022
基于 C# 的 圖表控件庫 ScottPlot,開源免費(fèi),可以用于開發(fā)一些上位機(jī)軟件,如電壓、電流波形的顯示,開發(fā)【示波器】圖形界面,可以顯示一些圖表、波形,總之功能比較的強(qiáng)大,本文介紹了基于C#的圖表控件庫 ScottPlot編譯visual studio 2022,需要的朋友可以參考下2022-06-06
C#實(shí)現(xiàn)Winform小數(shù)字鍵盤模擬器
本文主要介紹了C#實(shí)現(xiàn)Winform小數(shù)字鍵盤模擬器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
c#反射機(jī)制學(xué)習(xí)和利用反射獲取類型信息
反射(Reflection)是.NET中的重要機(jī)制,通過放射,可以在運(yùn)行時(shí)獲得.NET中每一個(gè)類型(包括類、結(jié)構(gòu)、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等,還可以獲得每個(gè)成員的名稱、限定符和參數(shù)等,有了反射,即可對(duì)每一個(gè)類型了如指掌2014-01-01
C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn))
本文主要介紹了C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn)),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C#實(shí)現(xiàn)Winform動(dòng)態(tài)添加菜單的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Winform動(dòng)態(tài)添加菜單的方法,涉及C#操作菜單的技巧,需要的朋友可以參考下2015-05-05

