我在使用多种窗口形式的代码时遇到问题:
private void Window_Load(object sender, EventArgs e)
{
new System.Threading.Timer((state) =>
{
BeginInvoke((Action)delegate()
{
if (!CurrentTimeDate.IsHandleCreated) return;
CurrentTimeDate.Text = " " + DateTime.Now.ToString("hh:mm:ss") + " " + DateTime.Now.ToShortDateString();
});
}, null, 0, 1000);
}
当我在第一次点击时显示表单时,它运行良好,然后我按下窗口表单的关闭按钮。我再次单击按钮再次显示该表单,然后显示此错误:
InvalidOperationException:无法在a上调用Invoke或BeginInvoke 控制直到窗口句柄被创建
编辑:我认为它已经解决但代码仍显示错误
答案 0 :(得分:3)
我认为这是在你的表格关闭后继续运行的计时器。
尝试保存计时器的实例,并在Form_Closing事件中调用timer.Dispose()