这篇文章主要介绍了WinForm实现仿视频播放器左下角滚动新闻效果的方法,涉及WinForm窗口滚动字幕设置的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了WinForm实现仿视频播放器左下角滚动新闻效果的方法。分享给大家供大家参考。具体实现方法如下:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Drawing.Imaging;
- using System.IO;
- using System.Xml.Linq;
- namespace App
- {
- public partial class Form7 : Form
- {
- private int Index { get; set; }
- private DataTable dataTable { get; set; }
- private System.Timers.Timer timer { get; set; }
- public Form7()
- {
- InitializeComponent();
- dataTable = new DataTable();
- dataTable.Columns.AddRange(new DataColumn[] {
- new DataColumn("Id",typeof(System.Int32)),
- new DataColumn("DisplayName",typeof(System.String)),
- new DataColumn("URL",typeof(System.String))
- });
- DataRow row = dataTable.NewRow();
- row["Id"] = 1;
- row["DisplayName"] = "百度百科欢迎你!";
- row["URL"] = "http://www.baidu.com";
- dataTable.Rows.Add(row);
- row = dataTable.NewRow();
- row["Id"] = 2;
- row["DisplayName"] = "刘XX明星已经现身搜狐网站,赶快去围观!";
- row["URL"] = "http://www.sohu.com";
- dataTable.Rows.Add(row);
- row = dataTable.NewRow();
- row["Id"] = 3;
- row["DisplayName"] = "新浪新闻出现重大新闻,点我快速查看!";
- row["URL"] = "http://www.sina.com.cn";
- dataTable.Rows.Add(row);
- row = dataTable.NewRow();
- row["Id"] = 4;
- row["DisplayName"] = "网易客户端出现新版本啦,赶快去体验把!";
- row["URL"] = "http://www.126.com";
- dataTable.Rows.Add(row);
- label1.Text = lblContent.Top.ToString();
- timer = new System.Timers.Timer(2000);
- timer.Elapsed += delegate
- {
- CharsMouse();
- };
- timer.Start();
- button1.Click += delegate
- {
- CharsMouse();
- };
- button2.Click += delegate
- {
- timer.Dispose();
- };
- lblContent.LinkClicked += delegate
- {
- label2.Text = dataTable.Rows[Index]["URL"].ToString();
- };
- }
- void CharsMouse()
- {
- this.lblContent.Invoke(new MethodInvoker(delegate
- {
- if (Index >= dataTable.Rows.Count)
- Index = 0;
- while (lblContent.Top > -lblContent.Height)
- {
- lblContent.Top = lblContent.Top - 2;
- label1.Text = "1.Top=" + lblContent.Top.ToString();
- System.Threading.Thread.Sleep(100);
- Application.DoEvents();
- }
- lblContent.Text = dataTable.Rows[Index]["DisplayName"].ToString();
- lblContent.Top = 2;
- timer.Enabled = false;
- Application.DoEvents();
- System.Threading.Thread.Sleep(2000);
- timer.Enabled = true;
- Index++;
- }));
- }
- }
- }
希望本文所述对大家的C#程序设计有所帮助。
新闻热点
疑难解答