C#实现跑马灯效果的示例代码分享给大家
字幕效果,功能效果大家都应该知道,就是当我们的文字太长,当整个页面放不下的时候(通常是公告等),它可以自动来回滚动,让客户可以看到完整的信息(虽然需要的时间有点长)。
事上,对于Winform这种技术来说,要实现任何动态效果都是比较麻烦的。而且一般都需要用定时器,当然这个时候写的字幕效果是一样的,用System。计时器。定时器的实现,关于其他定时器和用法,以前的文章有写过,有兴趣的可以转一下
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);
}
}
}
}
}
相关文章
- C#和java中执行sql文件脚本的代码详解编程语言
- C#实现图片分割方法与代码
- C#版ftp方法实现类的代码
- C#Winform实现屏蔽键盘的win和alt+F4的实现代码
- asp.net(c#)实现从sqlserver存取二进制图片的代码
- c#字符长度查询代码
- 关于c#连接ftp进行上传下载实现原理及代码
- C#中Dictionary几种遍历的实现代码
- URL中去除指定参数实现C#代码
- C#几种获取网页源文件代码的实例
- C#L型棋牌覆盖实现代码与效果
- c#获取网页中指定的字符串信息的实例代码
- 分享C#操作内存读写方法的主要实现代码
- C#自动设置IE代理服务器(翻墙软件)代码实现
- C#实现简单的JSON序列化功能代码实例
- C#实现json的序列化和反序列化实例代码
- C#代码设置开机启动示例
- C#winfrom模拟ftp文件管理实现代码
- C#实现带阴历显示的日期代码
- C#WinForm实现Win7Aero透明效果代码
- C#通过经纬度计算2个点之间距离的实现代码
- C#读取文件MD5值的实现代码