Пользовательский контроль создания и сокрытия формы Проблемы с потоками - PullRequest
0 голосов
/ 19 мая 2010

У меня есть элемент управления, называемый ChatController, в качестве частного члена у меня есть:

private frmChat m_chatWindow = null;

В конструкторе ChatController я делаю:

m_chatWindow = new frmChat(strJobNumber, m_emailAddress);   

if (m_chatWindow.InvokeRequired)
    m_chatWindow.Invoke(new MethodInvoker(delegate { m_chatWindow.Hide(); }));
else
    m_chatWindow.Hide();

Но я не могу скрыть m_chatWindow независимо от того, что я делаю, он случайным образом думает, что InvokeRequired является истинным или ложным, и выдается ошибка, говорящая «перекрестный бла-бла-бла ..».

Это уже существует, и единственное, что у меняизменено m_chatWindow.Show(this) на m_chatWindow.Hide().

Любые идеи, как я могу решить эту проблему ??

1 Ответ

1 голос
/ 19 мая 2010

После вызова конструктора вашей формы он не будет отображаться. Так что нет необходимости скрывать это.

Если вы не хотите отображать его сразу после создания, просто отбросьте всю часть if-else. Затем в вашем коде, где вы хотите показать свой m_chatWindow, просто вызовите его с уже известной функцией Show().

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