我在 ac# 3.5 应用程序上遇到了奇怪的行为。单击按钮时,我的 form1 会隐藏自己,创建一个新的 form2,并显示 form2。Form1 还包含当 form2 关闭时触发的事件方法。这是Form1中的代码:
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();
}
现在,我的问题是,有时当我打开 form2(隐藏 form1),或者当我关闭 form2(显示 form1)时,新表单会出现在屏幕上闪烁然后隐藏。它仍然打开,我可以从任务栏中单击它以再次显示它,但窗口本身会发送到任何其他打开的窗口后面。它看起来像打开但立即最小化。
此行为随机发生。有时表单会毫无问题地打开和隐藏,但有时它们会在另一个窗口上失去焦点。我尝试过使用focus()、activate() 和topmost,但都未能防止突然隐藏。
有谁知道为什么会发生这种情况以及如何解决?
谢谢。