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

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

2010-07-09 10:11 274 查看
要想在C#中实现label中文字循环从右至左滚动
弄了好半天,总是觉得这有点小问题那有点小问题

今天终于让我找着了,先记下来免得以后忘了

首先放一个timer控件,让其Interval属性为300,enable属性为true
然后拖一个Label,ID为lblMessage,Text写欢迎光临.
准备工作做好了,接下来在timer的timer_Tick事件里写:
int left = lblMessage.Left;//获得该Label距离窗体左边缘的距离
int right=lblMessage.Right;//获得Label距离窗体右边缘的距离
left = left - 3;//每执行一次timer_Tick距离窗体的左距离减3像素,这个操作只是控制像左移动的幅度,可以更改
if (right <= 0)//如果右边的距离为0,也就是Label完全退出窗体左边的时候,设置左边距为窗体宽度,此时Label会从右边出来
{
left = this.Width;
}
lblMessage.Left = left;//把每次左边距变化后的值设置给左边距属性,以使Label改变,达到滚动的效果
把你要显示的字符串赋给lblMessage.Text就可以了

Label中文字左右滚动
这个是自己拼起来来的,也不知道怎么简单,就写成这样了,不过可以实现在label中左右滚动

在这之前要定义一个用来控制滚动的线程(可以改一下方法为传入参数,参数是文字滚动的label)
public void Roll()
        {
            string a = "左边";
            do
            {
                if (a == "左边")
                {
                    do
                    {
                        roll++;
                        this.lblrollfont.Location = new System.Drawing.Point(roll, 10);
                        if (this.lblrollfont.Location.X + 1 == 349)          
                        //349是lable的x座标(就是移到要换方向滚动向右边时的X座标)
                        {
                            a = "右边";
                            break;
                        }
                        Thread.Sleep(10);
                    } while (a == "左边");
                }
                if (a == "右边")
                {
                    do
                    {
                        roll--;
                        this.lblrollfont.Location = new System.Drawing.Point(roll, 10);
                        if (this.lblrollfont.Location.X + 1 == 0)
                        {
                            a = "左边";
                            break;
                        }
                        Thread.Sleep(10);
                    } while (1 == 1);
                }
            } while (1 == 1);     
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# timer string 工作