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
调用
时间: 2024-10-10 17:51:40