ibcadmin 发表于 2019-12-20 08:48:57

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

<h1>场景</h1>
<h2>效果</h2>
<p></p>
<p> </p>
<p> </p>
<p> </p>
<p><img/></p>
<p>注:</p>
<p>博客主页: <br /><a href="https://blog.csdn.net/badao_liumang_qizhi">https://blog.csdn.net/badao_liumang_qizhi</a>
<br />关注公众号 <br />霸道的步伐猿 <br />获取编程干系电子书、教程推送与免费下载。</p>
<h1>实现</h1>
<p>新建一个Form,设置窗体的配景颜色为玄色,然后再拖拽一个LIstBox用来存取要滚动的内容,再拖拽一个Timer组件</p>
<p></p>
<p> </p>
<p> </p>
<p> </p>
<p>右击Timer组件设置其属性</p>
<p></p>
<p> </p>
<p> </p>
<p> </p>
<p><img/></p>
<p>将Enabled属性设置为true,体现可用,Interval体实际行的时间隔断0.2秒。</p>
<p>然后Timer尚有一个Tick事故,体现详细要实行的方法,即每隔0.2秒要实行的操纵。</p>
<p></p>
<p> </p>
<p> </p>
<p><img/></p>
<p>然后设置ListBox的属性和要滚动的内容</p>

            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;

<p> </p>
<p>然后在窗体的Load事故中,将ListBox置于窗体最底部,即设置其间隔顶部的间隔为窗体的高度。</p>
<p>然后再上面设置的每隔0.2秒实行的方法中举行判定,假如ListBox间隔顶部的位置小于负的本身的高度,即一次轮播到顶,再重新设置其间隔顶部的间隔为窗体高度,否则就会将ListBox举例顶部的间隔减去5。</p>
<h2>关键代码</h2>

       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();
      }

<h2>代码下载</h2>
<p><a href="https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12025689">https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12025689</a></p>
页: [1]
查看完整版本: Winform中使用Timer实现滚动字幕效果(附代码下载)