我有一个名为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为true或false,并且会抛出一个错误,说“跨线程等等等等。”。
这已经存在,我唯一改变的是m_chatWindow.Show(this)
到m_chatWindow.Hide()
。
任何想法如何解决这个问题?
答案 0 :(得分:1)
调用表单的构造函数后,它将不会显示。所以没有必要隐藏它。
如果您不想在创作后立即显示它,只需扔掉整个if-else部分。然后在您的代码中,您希望显示m_chatWindow
,只需使用已知的Show()
函数调用它。