这个功能你最好知道两个知识点:
第一,窗体消失有很多方式,介绍两种最常见的:Close(),Hide().二者的区别在于,Close会释放掉窗体的资源,而Hide()不会
第二,要保持窗体的唯一性,可以用单例模式.
class Form1:Form
{
static Form1 formbase;
//将类的初始化函数设为私有,这样在外部就不能直接初始化
piravte Form1()
{}
//单例模式,保证该实例只初始化一次.
public static Form1 GetInstation()
{
if(formbase==null||formbase.IsDispose()) //当formbase为空,或者被释放掉时执行初始化
{
formbase=new Form1();
}
return formbase;
}
}
class Form2:Form
{
public void ShowForm1HideForm2()
{
Form1 form1=Form1.GetInstation(); //调用唯一实例
form1.Caption="第一次初始化";
form1.Show();
form1.Hide(); //隐藏掉.
form1=Form1.GetInstation(); //调用唯一实例
Console.Writeline(form1.Caption); //这里可以看到 Caption="第一次初始化"
form1.Show();
}
}
你试试先显示Form2
Form2 a = new Form2();
a.Show();
然后在关闭当前窗口
this.Close();
还不行你可以把当前窗口隐藏不关!