想在C#中实现label文字滚动,实现新闻播放时,底栏的热点资讯滚动。其实就是添加一个timer,定时改变label的位置而已,先来张效果图:
代码很简单,没什么可以说的,直接贴上:
public partial class MainForm : Form
{
private int mPostionX, mPostionY;
private int mHeight,mWidth;
private double mTime = 0;
private Label mLabel = new Label();
public MainForm()
{
InitializeComponent();
}
private void POSDDealForm_Load(object sender, EventArgs e)
{
InitScrollShow();
timer1.Start();
}
// 初始化label显示
private void InitScrollShow()
{
mHeight = panelScreen.Height; ;
mWidth = panelScreen.Width;
mLabel.Font = new Font("宋体", 20);
mHeight -= mLabel.Font.Height; //label显示需要减去本身的高度
mPostionX = mWidth;
mPostionY = mHeight;
mLabel.Location = new Point(mPostionX, mPostionY);
mLabel.BackColor = Color.OrangeRed;
mLabel.Text = "测试滚动新闻资讯,以及防汛防洪";
mLabel.AutoSize = true;
panelScreen.Controls.Add(mLabel);
mLabel.Visible = true;
}
// 设置底栏从右向左滚动显示
private void ScrollShow()
{
mPostionX = mPostionX - 3;
mLabel.Location = new Point(mPostionX, mPostionY);
if (mPostionX <= -mLabel.Size.Width)
{
mPostionX = mWidth;
}
mLabel.Visible = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
mTime += 0.1;
ScrollShow();
}
}