Как обновить индикатор выполнения панели инструментов в форме MDI от ребенка? - PullRequest
0 голосов
/ 06 апреля 2020

Я использую MDI и дочерние формы. В MDI-форме я поместил элемент управления индикатора выполнения полосы инструментов, чтобы показать ход выполнения некоторых действий в дочерних формах. Я использую приведенный ниже код для запуска индикатора выполнения. Но это не работает. Пожалуйста, помогите мне.

В форме MDI,

public void UpdateProgessBar(int currentCount, int targetCount, Color progressBarColor)
{
  toolStripProgressBar.ForeColor = progressBarColor;
  if (targetCount > 0 && currentCount > 0)
  {
    double progressBarValue = ((double)currentCount / targetCount) * 100;
    if (progressBarValue >= 0)
    {
      Invoke((MethodInvoker)delegate ()
      {
        toolStripProgressBar.Value = Convert.ToInt32(progressBarValue);
      });
  }
}
else
{
  Invoke((MethodInvoker)delegate ()
  {
    toolStripProgressBar.Value = 0;
  });
}

}

В форме ребенка,

MDIParent mdiParent = new MDIParent();
mdiParent.UpdateProgessBar(1, 1, Color.LimeGreen);

Я получаю сообщение об ошибке как

"System.InvalidOperationException: 'Невозможно вызвать Invoke или BeginInvoke для элемента управления, пока не создан дескриптор окна.'"

Пожалуйста, помогите мне разрешить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...