C#滚动字幕的实现方法

作者:shichen2014 时间:2022-05-27 04:32:31 

本文实例讲述了C#滚动字幕的实现方法,分享给大家供大家参考。具体方法如下:

在c#中其实滚动屏幕的实现其实很简单,只需要用到Graphics.DrawString方法. Graphics.DrawString (String s, Font font, Brush brush, PointF point) 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。

参数说明:

s 要绘制的字符串。
font 它定义字符串的文本格式。
brush 它确定所绘制文本的颜色和纹理。
point 结构,它指定所绘制文本的左上角。

其中,我们要用到的就是point函数,通过控制它的X或Y参数来控制文字的偏移量.下面以水平滚动字幕为例.
  

private  Label label = new Label(); 
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#程序设计有所帮助。

标签:C#
0
投稿

猜你喜欢

  • WinForm中KeyDown,KeyPress和KeyUp的顺序与区别解析

    2023-06-30 22:34:36
  • Java 语言实现清除带 html 标签的内容方法

    2021-07-29 23:47:43
  • 详解通过JDBC进行简单的增删改查(以MySQL为例)

    2023-08-14 20:16:40
  • C# StringBuilder和string

    2021-08-20 00:21:20
  • 详解JVM中的GC调优

    2023-09-20 15:49:27
  • C#获取程序文件相关信息的方法

    2021-12-12 05:34:51
  • 一文搞懂SpringBoot如何利用@Async实现异步调用

    2022-02-06 12:39:27
  • Java设计模式之模版方法模式简介

    2023-07-16 14:58:32
  • Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解

    2023-05-31 15:35:27
  • 聊聊Spring AOP @Before @Around @After等advice的执行顺序

    2022-10-27 18:14:20
  • Java spring 通过注解方式创建对象的示例详解

    2023-07-03 01:18:05
  • JAVA 字符串加密、密码加密实现方法

    2023-11-28 04:08:09
  • Flink支持哪些数据类型?

    2023-01-15 06:55:43
  • mybatis if test判断BigDecimal遇到的坑及解决

    2022-12-06 09:44:24
  • 详解Eclipse提交项目到GitHub以及解决代码冲突

    2022-05-15 09:04:52
  • 解析C#设计模式之单例模式

    2021-12-15 17:41:12
  • Java8通过Function获取字段名的步骤

    2022-07-14 14:06:23
  • SpringBoot实现过滤器和拦截器的方法

    2022-10-21 23:29:34
  • WPF+ASP.NET SignalR实现动态折线图的绘制

    2021-11-28 08:13:43
  • Java实现多个wav文件合成一个的方法示例

    2021-10-08 08:14:25
  • asp之家 软件编程 m.aspxhome.com