C# 异常:'System.InvalidOperationException: 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke'

该异常是由于在创建窗口句柄之前,即在窗体加载完成之前,尝试在控件上调用 'Invoke' 或 'BeginInvoke' 方法造成的。

解决方法

将 'Invoke' 或 'BeginInvoke' 方法的调用放在窗体加载完成后的事件中,比如 'Load' 事件中。

示例:

private void Form1_Load(object sender, EventArgs e)
{
    // 在窗体加载完成后才能调用 Invoke 或 BeginInvoke 方法
    PowerMeter.GetStep += PowerMeter_GetStep;
}

private void PowerMeter_GetStep(string obj)
{
    textBox2.Invoke(new Action(() => { textBox2.Text += '\r\n'; })); 
}

这样就可以避免这个异常的出现。

C# 异常:System.InvalidOperationException - 在创建窗口句柄之前调用 Invoke 或 BeginInvoke

原文地址: https://www.cveoy.top/t/topic/mFIc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录