Lable的Left属性是可以更改的,但是 Right属性不可以更改,所以我们可以利用 这个特点做自加 自减运算
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 滚动字幕{ public partial class Form1 : Form. { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { this.label2.Left += 8; //向右移动3个像素 if(this.label2.Left>this.Width) { this.label2.Left = 0-label2.Width; //标签左位置为当前控件宽度 } } private void button1_Click(object sender, EventArgs e) { this.timer2.Stop(); this.timer1.Start(); //打开计时器 } private void button2_Click(object sender, EventArgs e) { this.timer1.Stop(); //停止计时器 this.timer2.Stop(); } private void button3_Click(object sender, EventArgs e) { this.timer1.Stop(); this.timer2.Start(); } private void timer2_Tick(object sender, EventArgs e) { this.label2.Left -= 8; //向右移动3个像素 if (this.label2.Right <0) { this.label2.Left = this.Width; //标签左位置为当前控件宽度 } } }}
效果: