C# 模拟跑马灯效果(2种)

 1   #region 跑马灯效果方法
 2         /// <summary>
 3         /// 文字进入左侧后从右侧出来
 4         /// </summary>
 5         private void LabelRun()
 6         {
 7             if ((lbMsg.Location.X + lbMsg.Width) > 0)
 8             {
 9                 lbMsg.Left = lbMsg.Left - 5;
10             }
11             else//设置文字初始位置
12             {
13                 lbMsg.Left = pBox.Width;
14             }
15         }
16 
17         bool flag = true;//标记文字滚动防线  true--往左  false--往右
18         /// <summary>
19         /// 文字在容器内来回碰撞
20         /// </summary>
21         private void LabelRunEx()
22         {
23             if (flag)
24             {
25                 if (lbMsg.Left > 0)//判断文字开端是否碰撞到了容器左侧边缘
26                 {
27                     lbMsg.Left = lbMsg.Left - 5;
28                     if (lbMsg.Left <= 0)
29                     {
30                         flag = false;
31                     }
32                 }
33             }
34             else
35             {
36                 lbMsg.Left = lbMsg.Left + 5;
37                 if (lbMsg.Left >= pBox.Width - lbMsg.Width)//判断文字末尾是否碰撞到了容器右侧边缘
38                 {
39                     flag = true;
40                 }
41             }
42         }
43         #endregion
方法
 1  #region 跑马灯线程
 2             new Thread(() =>
 3             {
 4                 while (true)
 5                 {
 6                     try
 7                     {
 8                         LabelRunEx();
 9                     }
10                     catch { }
11                     Thread.Sleep(100);
12                 }
13             })
14             { IsBackground = true }.Start();
15             #endregion
调用
原文地址:https://www.cnblogs.com/codeyou/p/5487617.html