马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

Winform中使用Timer实现滚动字幕效果(附代码下载)

  [复制链接]
查看2987 | 回复19 | 2019-12-20 08:48:57 | 显示全部楼层 |阅读模式

场景

效果

084931oh6ycc41h573zp8p.gif

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的步伐猿
获取编程干系电子书、教程推送与免费下载。

实现

新建一个Form,设置窗体的配景颜色为玄色,然后再拖拽一个LIstBox用来存取要滚动的内容,再拖拽一个Timer组件

084932meee6uju6e2nqhce.jpg

右击Timer组件设置其属性

084932vx2bqoii6am0i6ox.jpg

将Enabled属性设置为true,体现可用,Interval体实际行的时间隔断0.2秒。

然后Timer尚有一个Tick事故,体现详细要实行的方法,即每隔0.2秒要实行的操纵。

084933wriumdwgoi2g8dvr.jpg

然后设置ListBox的属性和要滚动的内容

  1. this.listBox1.BackColor = System.Drawing.SystemColors.WindowText;
  2. this.listBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
  3. this.listBox1.ForeColor = System.Drawing.SystemColors.InactiveCaption;
  4. this.listBox1.FormattingEnabled = true;
  5. this.listBox1.ItemHeight = 12;
  6. this.listBox1.Items.AddRange(new object[] {
  7. "逆战",
  8. "演唱:张杰",
  9. "在这个风起云涌的战场上",
  10. "暴风少年登场",
  11. "在降服烈火重重的咆哮声",
  12. "喧闹整个天下",
  13. "硝烟狂飞的讯号",
  14. "机甲期间正来到",
  15. "热血逆流而上",
  16. "战车在发烫",
  17. "勇士也势不可挡",
  18. "come on逆战 逆战来也",
  19. "王牌要狂野",
  20. "闯荡宇宙摆平天下",
  21. "Oh 逆战 逆战狂野",
  22. "在这个风起云涌的战场上",
  23. "暴风少年登场",
  24. "在降服烈火重重的咆哮声",
  25. "喧闹整个天下",
  26. "硝烟狂飞的讯号",
  27. "机甲期间正来到",
  28. "热血逆流而上",
  29. "战车在发烫",
  30. "勇士也势不可挡",
  31. "come on逆战 逆战来也",
  32. "王牌要狂野",
  33. "闯荡宇宙摆平天下",
  34. "Oh 逆战 逆战狂野"
  35. });
  36. this.listBox1.Location = new System.Drawing.Point(56, 377);
  37. this.listBox1.Name = "listBox1";
  38. this.listBox1.Size = new System.Drawing.Size(400, 480);
  39. this.listBox1.TabIndex = 0;
复制代码

然后在窗体的Load事故中,将ListBox置于窗体最底部,即设置其间隔顶部的间隔为窗体的高度。

然后再上面设置的每隔0.2秒实行的方法中举行判定,假如ListBox间隔顶部的位置小于负的本身的高度,即一次轮播到顶,再重新设置其间隔顶部的间隔为窗体高度,否则就会将ListBox举例顶部的间隔减去5。

关键代码

  1. private void Form1_Load(object sender, EventArgs e)
  2. {
  3. listBox1.Top = this.Height;
  4. this.Focus();
  5. }
  6. private void timer1_Tick(object sender, EventArgs e)
  7. {
  8. if (listBox1.Top < -listBox1.Height)
  9. {
  10. listBox1.Top = this.Height;
  11. }
  12. listBox1.Top = listBox1.Top - 5;
  13. this.Focus();
  14. }
复制代码

代码下载

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12025689

C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则