110,580
社区成员
发帖
与我相关
我的任务
分享
//直接使用单例模式吧,就一个实例。
public partial class Form2 : Form
{
//将构造函数声明为私有,禁止外部创建
private Form2()
{
InitializeComponent();
}
//声明唯一的Form2实例对象
private static Form2 frm2;
//外部通过该方法获取Form2的唯一实例
public static Form2 GetInstance()
{
if(frm2 == null || frm2.IsDisposed)
{
frm2 = new Form2();
}
return frm2;
}
}
//好处:全局(该线程中)就一个Form2实例;
//坏处:该实例一旦创建,将一直存在(因为是静态的);
//注意:如果是多线程,则需要对GetInstance方法进行改进,使用lock进行判断;
//在Form1中调用的时候用以下代码即可:
Form2 frm2 = Form2.GetInstance();
//不用再管有多少个实例了,form2自己负责维护自己的唯一实例,很爽。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form frm1;
private void button1_Click(object sender, EventArgs e)
{
if (frm1 == null || frm1.IsDisposed)
{
frm1 = new Form();
frm1.Show();
}
else
{
frm1.Activate();
frm1.WindowState = FormWindowState.Normal;
}
}
}
}
private void btnOK_Click(object sender, EventArgs e)
{
if (frm1 == null || frm1.IsDisposed)
{
Form frm1 = new KHXXFrm();
frm1.Show();
}
else
{
frm1.Activate();
frm1.WindowState = FormWindowState.Normal;
}
}
Form frm1;
private void btnOK_Click(object sender, EventArgs e)
{
if (frm1 == null || frm1.IsDisposed)
{
frm1 = new KHXXFrm();
frm1.Show();
}
else
{
frm1.Activate();
frm1.WindowState = FormWindowState.Normal;
}
}