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

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

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

文章描述

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

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

因為使用麻煩,所以要進行封裝,所以要不斷的造輪子(盡管是重復的),但重復也是一個加強記憶以及不斷深入的過程,我認為這并不是多余的。因此,為了方便調(diào)用,還是用自定義控件封裝一下屬性,使用的時候只要設(shè)置屬性即可。

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

.NET Framework版本:4.5

開發(fā)工具

 Visual Studio 2013

實現(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;
        }

實現(xiàn)效果

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

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

相關(guān)文章

  • Unity實現(xiàn)圖片生成灰白圖的方法

    Unity實現(xiàn)圖片生成灰白圖的方法

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)圖片生成灰白圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#判斷某程序是否運行的方法

    C#判斷某程序是否運行的方法

    這篇文章主要介紹了C#判斷某程序是否運行的方法,代碼結(jié)構(gòu)簡單功能實用,需要的朋友可以參考下
    2014-09-09
  • C#之字符串截取--Regex.Match使用

    C#之字符串截取--Regex.Match使用

    這篇文章主要介紹了C#之字符串截取--Regex.Match使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • C#紋理畫刷TextureBrush用法實例

    C#紋理畫刷TextureBrush用法實例

    這篇文章主要介紹了C#紋理畫刷TextureBrush用法,實例分析了紋理畫刷TextureBrush的具體使用技巧,需要的朋友可以參考下
    2015-06-06
  • Treeview動態(tài)添加用戶控件傳值和取值的實例代碼

    Treeview動態(tài)添加用戶控件傳值和取值的實例代碼

    今天做了很好玩的樹,是treeview與用戶控件之間進行交互先看效果:
    2013-04-04
  • 深入淺析C#中單點登錄的原理和使用

    深入淺析C#中單點登錄的原理和使用

    這篇文章主要介紹了C#中單點登錄的原理和使用,需要的朋友可以參考下
    2017-10-10
  • WPF使用WrapPanel實現(xiàn)虛擬化效果

    WPF使用WrapPanel實現(xiàn)虛擬化效果

    這篇文章主要為大家詳細介紹了如何利用WPF WrapPanel實現(xiàn)虛擬化效果,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • C#實現(xiàn)谷歌翻譯API示例代碼

    C#實現(xiàn)谷歌翻譯API示例代碼

    本篇文章主要介紹了C#實現(xiàn)谷歌翻譯API示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • C#9新特性init only setter的使用

    C#9新特性init only setter的使用

    這篇文章主要介紹了C#9新特性init only setter的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • C#測量程序運行時間及cpu使用時間實例方法

    C#測量程序運行時間及cpu使用時間實例方法

    對一個服務(wù)器程序想統(tǒng)計每秒可以處理多少數(shù)據(jù)包,要如何做?答案是用處理數(shù)據(jù)包的總數(shù),除以累記處理數(shù)據(jù)包用的時間,下面我們看一個代碼實例就明白了
    2013-11-11

最新評論

岳池县| 乐都县| 宁陕县| 新龙县| 桐城市| 车致| 五台县| 水富县| 淮安市| 万源市| 台州市| 茂名市| 祁连县| 科技| 台前县| 山东省| 蕲春县| 麟游县| 齐河县| 石渠县| 灵宝市| 彝良县| 临颍县| 定兴县| 柘荣县| 吉木乃县| 五寨县| 克拉玛依市| 兰州市| 博乐市| 哈巴河县| 从江县| 焦作市| 高青县| 武定县| 梨树县| 乌恰县| 堆龙德庆县| 阿荣旗| 铅山县| 普陀区|