如何实现1窗口关闭,2窗口打开,输入参数后将参数传递到1窗口,并且1窗口原来的状态不变(如原来已经输入的文本、选择的复选框状态不变)而我原来的:
在1窗口:
form2 f2=new form2();
f2.show();
this.hide();在2窗口:
form1 f1=new form1();
f1.show();
this.hide();
结果最后得到的2窗口是全新的,因为用了new form2()。
怎么才能实现如题的效果呢?
在1窗口:
form2 f2=new form2();
f2.show();
this.hide();在2窗口:
form1 f1=new form1();
f1.show();
this.hide();
结果最后得到的2窗口是全新的,因为用了new form2()。
怎么才能实现如题的效果呢?
Class1:using System;
using System.Windows.Forms;namespace WindowsApplication1
{
public class Class1
{
public Class1()
{
} protected static Form1 frm1;
protected static Form2 frm2; [STAThread]
static void Main()
{
frm1 = new Form1();
Application.Run(frm1);
} public static void ShowForm1()
{
if(frm1 == null)
{
frm1 = new Form1();
}
if(frm1.IsDisposed)
{
frm1 = new Form1();
}
frm1.Show(); } public static void HideForm1()
{
if(frm1 != null)
{
frm1.Hide();
}
if(!frm1.IsDisposed)
{
frm1.Hide();
}
} public static void ShowForm2()
{
if(frm2 == null)
{
frm2 = new Form2();
}
if(frm2.IsDisposed)
{
frm2 = new Form2();
}
frm2.Show();
} public static void HideForm2()
{
if(frm2 != null)
{
frm2.Hide();
}
if(!frm2.IsDisposed)
{
frm2.Hide();
}
}
}
}Form1: //在Form1下Show Form2
private void button1_Click(object sender, System.EventArgs e)
{
Class1.ShowForm2();
Class1.HideForm1();
}Form2: //在Form2下show Form1
private void button1_Click(object sender, System.EventArgs e)
{
Class1.ShowForm1();
Class1.HideForm2();
}看看是不是你要的效果!!!
Private Shared instance As form1 ''singleton模式
Public Shared Function getInstance() As form1
If instance Is Nothing Then
instance = New form1
End If
If instance.IsDisposed Then
instance = New form1
End If
Return instance
End Function
其他地方调用时:
form1.getInstance().show()就可以了