C#實現(xiàn)跑馬燈效果的示例代碼
文章描述
跑馬燈效果,功能效果大家應該都知道,就是當我們的文字過長,整個頁面放不下的時候(一般用于公告等),可以讓它自動實現(xiàn)來回滾動,以讓客戶可以看到完整的信息(雖然要多等一會兒時間)。
其實對于Winform這種技術,實現(xiàn)任何的動態(tài)效果相對來說都比較麻煩。而且一般都需要搭配定時器使用,當然,這次要寫的跑馬燈效果也是一樣的,使用了System.Timers.Timer
來實現(xiàn),關于其他定時器以及用法,之前文章有寫過,有興趣的可以翻一下。
因為使用麻煩,所以要進行封裝,所以要不斷的造輪子(盡管是重復的),但重復也是一個加強記憶以及不斷深入的過程,我認為這并不是多余的。因此,為了方便調用,還是用自定義控件封裝一下屬性,使用的時候只要設置屬性即可。
開發(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屬性中就調用了Timer事件;所以即便不運行,在設計窗體時改變屬性就可以直接看到效果。
到此這篇關于C#實現(xiàn)跑馬燈效果的示例代碼的文章就介紹到這了,更多相關C#跑馬燈內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法
這篇文章主要介紹了C#使用StopWatch獲取程序毫秒級執(zhí)行時間的方法,涉及C#操作時間的相關技巧,需要的朋友可以參考下2015-04-04C#開發(fā)微信門戶及應用(3) 文本消息和圖文消息應答
這篇文章主要為大家詳細介紹了C#開發(fā)微信門戶及應用第二篇,微信文本消息和圖文消息的應答,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06C#操作本地文件及保存文件到數(shù)據(jù)庫的基本方法總結
C#使用System.IO中的文件操作方法在Windows系統(tǒng)中處理本地文件相當順手,這里我們還總結了在Oracle中保存文件的方法,嗯,接下來就來看看整理的C#操作本地文件及保存文件到數(shù)據(jù)庫的基本方法總結2016-05-05