首先,一种常见的方法是让窗体A自行控制隐藏。在A的按钮事件中,可以编写如下代码:
csharp
this.Visible=false;
Form2f2=newForm2();
f2.ShowDialog();//不推荐使用f2.Show(),因为这会导致父窗体A也显示
this.Visible=true;//当Form2关闭后,A窗体恢复可见
另一种方法是让窗体B控制A的隐藏,A作为参数传递给B。在B中,创建一个显示方法ShowMe:
csharp
privateFormfm=null;
publicvoidShowMe(Formf)
{
fm=f;
fm.Visible=false;
this.Show();
}
//在Form2的FormClose事件中,恢复父窗体A的可见性
privatevoidForm2_FormClose(objectsender,FormCloseEventArgse)
{
fm.Visible=true;
}
在A的按钮事件中,调用B的ShowMe方法:
csharp
Form2f2=newForm2();
f2.ShowMe(this);
然而,这种方式并不推荐用于实际项目,因为它可能导致用户界面操作不直观,不如使用向导类的方法更为优雅,能更好地处理这类窗口间的交互问题。