我遇到了c#3.5应用程序窗体上的奇怪行为。点击按钮后,我的form1隐藏自身,创建一个新的form2,并显示form2。 Form1还包含form2关闭时触发的事件方法。这里的内部Form1的代码:C#窗体问题:失去控制权和随机隐藏的新窗体
Form2 form2;
void button1_Click(object sender, EventArgs e)
{
this.Hide();
form2 = new form2();
form2.Show();
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
}
void form2_FormClosed(object sender, FormClosedEventArgs e)
{
form2.Dispose();
form2 = null;
this.Show();
}
现在,我的问题是,有时当我打开窗口2(隐藏Form1中),或者当我关闭窗口2(显示Form1中),新的形式会在屏幕的上眨眼然后隐藏自己。它仍然是开放的,我可以从任务栏点击它再次显示,但窗口本身发送到任何其他打开的窗口后面。它看起来像打开了,但立即最小化。
此行为是随机发生的。有时候表格会被打开并隐藏起来没有问题,但有时他们会失去对另一个窗口的关注。我尝试过使用focus(),activate()和最顶层,但都未能阻止突然隐藏。
有谁知道为什么会发生这种情况,以及如何解决它?
谢谢。
为什么你新建form2()?不应该是form2 = new Form(); – Soviut 2009-11-15 22:13:00
@Soviut - 写这个问题时可能只是一个错字 – ChrisF 2009-11-15 22:21:50
你可以用ShowDialog()来试试吗? – Stormenet 2009-11-15 22:21:57