Я создал приложение формы C # для окон и пытаюсь загрузить текст в 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
, это сработает, но у меня нет шансов сделать это.
Как я мог решить эту проблему. Пожалуйста, помогите мне?