C#时间实时刷新
public Form1()
{
InitializeComponent();
new System.Threading.Thread(() =>
{
while (true)
{
try { label1.BeginInvoke(new MethodInvoker(() => label1.Text = DateTime.Now.ToString())); }
catch { }
System.Threading.Thread.Sleep(1000);
}
})
{ IsBackground = true }.Start();
}
在实际应用中常常需要实时刷新数据,这时候就要利用到Timer。Timer的功能是在指定的时间间隔内反复触发指定窗口的定时器事件。
下面的例子实现了文本框中时间的实时刷新。
附上代码如下:
首先,文本框的属性应设为只读:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = DateTime.Now.ToString();
textBox1.ReadOnly = true; //设置为只读
}
再次,设置Timer:
private void textBox1_TextChanged(object sender, EventArgs e)
{
//实例化timer,使得间隔为1000ms
System.Timers.Timer t = new System.Timers.Timer(1000);
t.Elapsed += new System.Timers.ElapsedEventHandler(refreshTime);
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}
最后,描述事件:
//对事件的描述
public void refreshTime(object source, System.Timers.ElapsedEventArgs e)
{
textBox1.Text = DateTime.Now.ToString();
}
这是我所学到的一些知识,在此分享给大家,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!