【发布时间】:2020-07-20 00:54:21
【问题描述】:
我目前正在尝试从我的 BackgroundWorker 线程更新我的控件 (Label.Text)。
Control1 mycontrol = new Control1();
mycontrol.Invoke((MethodInvoker)delegate { mycontrol.statusmainlabel.Text = "Setting up"; });
但我收到以下错误:
System.InvalidOperationException:“在创建窗口句柄之前,无法调用 Invoke 或 BeginInvoke 进行控制。”
我正在尝试从BackgroundWorker 调用的其他类更新我的UserControl。
【问题讨论】:
-
如果没有重现问题的minimal reproducible example,就无法确定应该如何修复您的代码。但是,请参阅重复的一般建议,以引导您更好地理解措辞清晰的错误消息和修复它的策略。至于您发布的代码,如果您实际上是为了调用
Invoke()而创建Control1对象,那是错误的。您需要使用表单中已经存在的控件实例。