我构建了一个C#Windows窗体应用程序,并且试图从一种方法将文本加载到toolstripsstatuslable
中。但是,我从另一个外部线程调用了该方法,当我运行它时,它是一个错误;见下文。
Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
这是我的方法。
public void loadNotification(string text)
{
Invoke(new UpdateLabel(UpdateUI), text);
statusStrip.Refresh();
}
它将调用此方法
private void UpdateUI(string labelText)
{
MessageBox.Show("update ui");
tssNotification.Text = labelText;
//statusStrip.Refresh();
}
这是我线程的run()
方法正在调用loadNotification()
方法
public void Run()
{
System.Windows.Forms.MessageBox.Show("this is System Thread");
m = new MainInterface();
Notifications ne = new Notifications(m.loadNotification);
ne.Invoke("aksdjasd");
Thread.Sleep(1000);
}
我知道问题不是创建窗口处理,如果我从loadNotification
事件中调用此form_load
方法,它将起作用,但我没有机会这样做。
我该如何解决这个问题。请帮帮我吗?