最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)跑馬燈效果的示例代碼

 更新時(shí)間:2022年11月03日 14:29:32   作者:Csharp小記  
跑馬燈效果,功能效果大家應(yīng)該都知道,就是當(dāng)我們的文字過長,整個(gè)頁面放不下的時(shí)候(一般用于公告等),可以讓它自動(dòng)實(shí)現(xiàn)來回滾動(dòng)。本文將利用C#實(shí)現(xiàn)這一效果,感興趣的可以了解一下

文章描述

跑馬燈效果,功能效果大家應(yīng)該都知道,就是當(dāng)我們的文字過長,整個(gè)頁面放不下的時(shí)候(一般用于公告等),可以讓它自動(dòng)實(shí)現(xiàn)來回滾動(dòng),以讓客戶可以看到完整的信息(雖然要多等一會(huì)兒時(shí)間)。

其實(shí)對于Winform這種技術(shù),實(shí)現(xiàn)任何的動(dòng)態(tài)效果相對來說都比較麻煩。而且一般都需要搭配定時(shí)器使用,當(dāng)然,這次要寫的跑馬燈效果也是一樣的,使用了System.Timers.Timer來實(shí)現(xiàn),關(guān)于其他定時(shí)器以及用法,之前文章有寫過,有興趣的可以翻一下。

因?yàn)槭褂寐闊?,所以要進(jìn)行封裝,所以要不斷的造輪子(盡管是重復(fù)的),但重復(fù)也是一個(gè)加強(qiáng)記憶以及不斷深入的過程,我認(rèn)為這并不是多余的。因此,為了方便調(diào)用,還是用自定義控件封裝一下屬性,使用的時(shí)候只要設(shè)置屬性即可。

開發(fā)環(huán)境

.NET Framework版本:4.5

開發(fā)工具

 Visual Studio 2013

實(shí)現(xiàn)代碼

 public partial class CustomLable : Label
    {
        System.Timers.Timer timer = new System.Timers.Timer(200);
        int offset = 5;//偏移量
        PointF textPoint;
        public CustomLable()
        {
            InitializeComponent();
            textPoint = new PointF(this.Width, 0);
            timer.Elapsed += (s, e) =>
            {
                try
                {
                    if (!IsDisposed)
                    {
                        Graphics g = CreateGraphics();
                        SizeF textSize = g.MeasureString(Text, Font);
                        textPoint.X -= offset;
                        if (textPoint.X <= -textSize.Width)
                        {
                            textPoint.X = Width;
                        }
                        g.Clear(BackColor);
                        g.DrawString(Text,Font, new SolidBrush(ForeColor), textPoint);
                    }
                }
                catch { }
            };
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
        }

        private bool _IsMarquee;

        [Browsable(true)]
        [Description("是否以跑馬燈效果顯示")]
        public bool IsMarquee
        {
            get { return _IsMarquee; }
            set
            {
                _IsMarquee = value;
                Marquee();
            }
        }


        public void Marquee()
        {
            if (IsMarquee)
            {
                timer.Start();
            }
            else
            {
                timer.Stop();
                textPoint = new PointF(0, 0);
                try
                {
                    if (!IsDisposed)
                    {
                        Graphics g = CreateGraphics();
                        g.Clear(BackColor);
                        g.DrawString(Text, Font, new SolidBrush(ForeColor), textPoint);
                    }
                }
            }
        }
    }
 private void button1_Click(object sender, EventArgs e)
        {
            customLable1.IsMarquee = !customLable1.IsMarquee;
        }

實(shí)現(xiàn)效果

代碼解析:由于我們直接是在IsMarquee的set屬性中就調(diào)用了Timer事件;所以即便不運(yùn)行,在設(shè)計(jì)窗體時(shí)改變屬性就可以直接看到效果。

到此這篇關(guān)于C#實(shí)現(xiàn)跑馬燈效果的示例代碼的文章就介紹到這了,更多相關(guān)C#跑馬燈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

甘洛县| 科技| 滕州市| 肃北| 东光县| 手游| 宽城| 桦川县| 衡南县| 海口市| 镇雄县| 玛纳斯县| 庆云县| 武强县| 屏山县| 永春县| 翼城县| 博湖县| 河源市| 巴林右旗| 聂拉木县| 开平市| 平昌县| 晋城| 周口市| 巧家县| 天峨县| 琼结县| 永清县| 德江县| 华蓥市| 泗水县| 华坪县| 绍兴市| 滨州市| 广宗县| 民乐县| 山阳县| 临漳县| 苏尼特右旗| 邳州市|