C#滾動字幕的實現(xiàn)方法
本文實例講述了C#滾動字幕的實現(xiàn)方法,分享給大家供大家參考。具體方法如下:
在c#中其實滾動屏幕的實現(xiàn)其實很簡單,只需要用到Graphics.DrawString方法. Graphics.DrawString (String s, Font font, Brush brush, PointF point) 在指定位置并且用指定的 Brush 和 Font 對象繪制指定的文本字符串。
參數(shù)說明:
s 要繪制的字符串。
font 它定義字符串的文本格式。
brush 它確定所繪制文本的顏色和紋理。
point 結(jié)構(gòu),它指定所繪制文本的左上角。
其中,我們要用到的就是point函數(shù),通過控制它的X或Y參數(shù)來控制文字的偏移量.下面以水平滾動字幕為例.
public string text="csdn baihe_591";
private void FrmShow_Load(object sender, EventArgs e)
{
this.label.Location = new Point(149, 13);
this.label.Size = new Size(134, 16);
this.Controls.Add (label);
this.label.Text = "";
this.timer1.Enabled = true;
this.timer1.Interval = 500;
p = new PointF(this.label.Size.Width, 0);
}
PointF p;
Font f = new Font("宋體", 10);
Color c = Color.White;
string temp;
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = this.label.CreateGraphics();
SizeF s = new SizeF();
s = g.MeasureString(text, f);//測量文字長度
Brush brush = Brushes.Black;
g.Clear(c);//清除背景
if (temp != text)//文字改變時,重新顯示
{
p = new PointF(this.label.Size.Width, 0);
temp = text;
}
else
p = new PointF(p.X - 10, 0);//每次偏移10
if (p.X <= -s.Width)
p = new PointF(this.label.Size.Width, 0);
g.DrawString(text, f, brush, p);
}
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List
這篇文章主要介紹了c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12C# httpwebrequest訪問HTTPS錯誤處理方法
下面小編就為大家?guī)硪黄狢# httpwebrequest訪問HTTPS錯誤處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01C#中32位浮點數(shù)Float(Real)一步步按位Bit進行分析
這篇文章主要介紹了C#中32位浮點數(shù)Float(Real)一步步按位Bit進行分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08Entity?Framework模型優(yōu)先與實體對象查詢
這篇文章介紹了Entity?Framework模型優(yōu)先與實體對象查詢,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06