因此,我使用dataGridView创建了UserControl,实际上该对象的使用方式并不那么重要,但是可以说我拥有DataSource,我想用这些值刷新dataGridView。
在示例中,我具有函数fillDataGridView(),我希望它每2分钟调用一次
我认为我可以使用Thread类来完成此操作,但尚无任何成功
您如何处理UI刷新?
我知道这看起来像“还有另一个UI更新问题的人”,但是据我所知,我确实不是最简单的方法
public partial class Alertbox : UserControl
{
private static System.Timers.Timer aTimer;
public Alertbox()
{
InitializeComponent();
aTimer = new System.Timers.Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler(Update);
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
public void Update(object source, ElapsedEventArgs e)
{
BT_AddTrigger.Text += "test"; // append to button text
}
}
就是这样
System.Windows.Forms.dll中发生类型为'System.InvalidOperationException'的异常,但未在用户代码中处理。附加信息:跨线程操作无效:控制'BT_AddTrigger'从创建该线程以外的线程访问在。
您应该以这种方式使用计时器类
System.Timers.Timer testTimer = new System.Timers.Timer();
testTimer.Enabled = true;
//testTimer.Interval = 3600000; //1 hour timer
testTimer.Interval = 100000;// Execute timer every // five seconds
testTimer.Elapsed += new System.Timers.ElapsedEventHandler(FillGrid);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句