我的Form1在我的應用程序中調用另一個窗體 - Form2使用ShowDialog()方法。在一些用戶交互後,Form2調用它的Hide()方法。之後,我的應用程序有時會失去焦點。這可能是一些設計錯誤。調用其子窗體的Hide方法後失去焦點
代碼片段:
public class Form1 : Form
{
Form2 form2;
public void SomeMethod()
{
if (form2==null) form2 = new Form2();
DialogResult result = form2.ShowDialog(this);
}
}
public class Form2 : Form
{
public Form2()
{
this.FormClosing += new FormClosingEventHandler(Form2_FormClosing);
}
void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
Hide();
}
}
}
編輯: 我有錯在我的代碼上線
DialogResult result = form2.ShowDialog(this);
是
DialogResult result = ShowDialog(form2,this);
Form2_FormClosing捕捉的意義是什麼? – serhio
我想保持form2對象的生活。但這並不重要。這是解決問題的例子。它可以從另一種方法調用。 – Michal