我正在使用计时器来重置用作警告框的标签。基本上,如果用户做了某件事(更具体地说,出了问题,例如:他使用了程序无法识别的单词),这会尽早捕获出现的问题并将发生的情况返回给他,以便他可以更改输入。
重置会在 5 秒后清空标签,以防止他看到类似“请不要使用中文字符”之类的内容,并且可能仍然认为旧错误仍然存在。这就是我阅读调用时得到的内容(因为我听说 begininvoke 需要 endinvoke,所以我选择了 invoke)。
private void lblWrn_TextChange(object sender, EventArgs e)
{
Timee = new System.Timers.Timer(5000);
Timee.Elapsed += new ElapsedEventHandler(timerClearWrn);
Timee.Enabled = true;
}
string empty = "";
private void timerClearWrn(object sender, ElapsedEventArgs elapsed)
{
lblWrn.Invoke(new Action<Label>(lblWrn), new object[] { lblWrn, "" });
}
我不太确定我在哪里出了问题,并且查找示例,无法弄清楚要更改哪一部分。有人可以向我解释这个错误或调用更多吗?
如果它是一个Windows窗体应用程序,使用System.Windows.Forms.Timer,那么你不需要Invoke,因为计时器回调是在主线程上执行的。
另外,不要在每次文本更改时创建新的计时器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)