每秒刷新表单

GoG*_*oGo 4 c# sql winforms

我有一个C#Windows窗体,有几个文本框和按钮.它还有一个显示sql表的数据网格视图.我创建了一个刷新按钮,允许我刷新表,以便我可以在表中看到更新的项目.我想知道有没有办法自己刷新表.像每10秒一样.或者不是桌子,也许整个表格每10秒加载或刷新一次?

T M*_*own 22

使用Timer控件,调用UI线程并通过表单设计器为您提供控件.

private void Form1_Load(object sender, EventArgs e)
{
    Timer timer = new Timer();
    timer.Interval = (10 * 1000); // 10 secs
    timer.Tick += new EventHandler(timer_Tick);
    timer.Start();
}

private void timer_Tick(object sender, EventArgs e)
{
   //refresh here...
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意它是`System.Windows.Forms.Timer`,因为@"Sudhakar Tillapudi"在这个(好的)正确答案中说.你永远不应该使用`System.Threading.Timer`.`System.Windows.Forms.Timer`*在GUI-Thread上调用*回调,而`System.Threading.Timer`使用ThreadPool中可用的线程,你将得到一个跨线程异常:`InvalidOperationException` with the消息:"控制控件名称从其创建的线程以外的线程访问".WPF提供类似于具有附加功能的`System.Windows.Forms.Timer`的`DispatcherTimer`. (3认同)