
#region 跑马灯效果方法
/// <summary>
/// 文字进入左侧后从右侧出来
/// </summary>
private void LabelRun()
{
if ((lbMsg.Location.X + lbMsg.Width) > )
{
lbMsg.Left = lbMsg.Left - ;
}
else//设置文字初始位置
{
lbMsg.Left = pBox.Width;
}
} bool flag = true;//标记文字滚动防线 true--往左 false--往右
/// <summary>
/// 文字在容器内来回碰撞
/// </summary>
private void LabelRunEx()
{
if (flag)
{
if (lbMsg.Left > )//判断文字开端是否碰撞到了容器左侧边缘
{
lbMsg.Left = lbMsg.Left - ;
if (lbMsg.Left <= )
{
flag = false;
}
}
}
else
{
lbMsg.Left = lbMsg.Left + ;
if (lbMsg.Left >= pBox.Width - lbMsg.Width)//判断文字末尾是否碰撞到了容器右侧边缘
{
flag = true;
}
}
}
#endregion
方法
#region 跑马灯线程
new Thread(() =>
{
while (true)
{
try
{
LabelRunEx();
}
catch { }
Thread.Sleep();
}
})
{ IsBackground = true }.Start();
#endregion
调用