使用的控件
panel和label及其定时器。实现原理
通过定时器定时将label的位置在panel上进行移动,实现滚动的视觉效果,此处将label放在panel上的好处是可以单独设置滚动字母的背景色,且滚动字幕的整体显示区域可有panel控制。控件布置
在需要显示滚动字幕的位置放置一个panel并设置其大小和位置,在同样的位置上放置label,并在父窗体为panel的情况下将label的位置设置为(0,0),也可以在代码中设置,拖动定时器到窗体上。源代码:
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ScrollText{public partial class Form1 : Form{public Form1(){InitializeComponent();}private int PosX = 0; // 定义全局变量private void Form1_Load(object sender, EventArgs e){timer1.Enabled = true;PosX = this.panel.Width; // 获取初始位置this.label.Location = new Point(PosX, this.label.Top); // 设置label开始滚动的位置this.label.Text = "新闻资讯:123456789"; // 设置滚动字幕内容,如内容需要变化,也可以设置变量,将变量赋值给label.Text,this.label.AutoSize = true;this.label.Visible = true;this.label.Parent = this.panel;this.panel.BackColor = Color.LightBlue; // 设置滚动条背景色}private void ScrollDisplay(){if (PosX <= -this.label.Size.Width){PosX = this.panel.Width + 3; }PosX = PosX - 3; // 位置偏差,可控制字幕移动的快慢this.label.Location = new Point(PosX, this.label.Top);}private void timer1_Tick(object sender, EventArgs e){ScrollDisplay();}}}