Winform中使用Timer实现滚动字幕效果(附代码下载)
程序员文章站
2022-07-02 12:34:15
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个Form,设置窗体的背景颜色为黑色,然后再拖拽一个LIstBox用来存取要滚动的内容,再拖拽一个Time ......
场景
效果
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建一个form,设置窗体的背景颜色为黑色,然后再拖拽一个listbox用来存取要滚动的内容,再拖拽一个timer组件
右击timer组件设置其属性
将enabled属性设置为true,表示可用,interval表示执行的时间间隔0.2秒。
然后timer还有一个tick事件,表示具体要执行的方法,即每隔0.2秒要执行的操作。
然后设置listbox的属性和要滚动的内容
this.listbox1.backcolor = system.drawing.systemcolors.windowtext; this.listbox1.borderstyle = system.windows.forms.borderstyle.none; this.listbox1.forecolor = system.drawing.systemcolors.inactivecaption; this.listbox1.formattingenabled = true; this.listbox1.itemheight = 12; this.listbox1.items.addrange(new object[] { "逆战", "演唱:张杰", "在这个风起云涌的战场上", "暴风少年登场", "在战胜烈火重重的咆哮声", "喧闹整个世界", "硝烟狂飞的讯号", "机甲时代正来到", "热血逆流而上", "战车在发烫", "勇士也势不可挡", "come on逆战 逆战来也", "王牌要狂野", "闯荡宇宙摆平世界", "oh 逆战 逆战狂野", "在这个风起云涌的战场上", "暴风少年登场", "在战胜烈火重重的咆哮声", "喧闹整个世界", "硝烟狂飞的讯号", "机甲时代正来到", "热血逆流而上", "战车在发烫", "勇士也势不可挡", "come on逆战 逆战来也", "王牌要狂野", "闯荡宇宙摆平世界", "oh 逆战 逆战狂野" }); this.listbox1.location = new system.drawing.point(56, 377); this.listbox1.name = "listbox1"; this.listbox1.size = new system.drawing.size(400, 480); this.listbox1.tabindex = 0;
然后在窗体的load事件中,将listbox置于窗体最底部,即设置其距离顶部的距离为窗体的高度。
然后再上面设置的每隔0.2秒执行的方法中进行判断,如果listbox距离顶部的位置小于负的自己的高度,即一次轮播到顶,再重新设置其距离顶部的距离为窗体高度,否则就会将listbox举例顶部的距离减去5。
关键代码
private void form1_load(object sender, eventargs e) { listbox1.top = this.height; this.focus(); } private void timer1_tick(object sender, eventargs e) { if (listbox1.top < -listbox1.height) { listbox1.top = this.height; } listbox1.top = listbox1.top - 5; this.focus(); }
代码下载
https://download.csdn.net/download/badao_liumang_qizhi/12025689