您的位置:首页 > 编程语言 > C#

C#中实现label文字循环滚动

2017-07-07 18:05 393 查看
       想在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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息