请选择 进入手机版 | 继续访问电脑版

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

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 694|回复: 15

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

  [复制链接]
  • TA的每日心情
    开心
    前天 21:32
  • 签到天数: 1610 天

    [LV.Master]伴坛终老

    4251

    主题

    6177

    帖子

    11万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    111382

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-12-20 08:48:57 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    场景

    效果

    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编程社区
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则