1.在某个函数中
public ShowForm()
{
Form1 frm = new Form1();
frm.Show();
}
执行两次ShowForm()
怎么防止Show出两个相同的窗体?
2.如果把frm改成外部变量
Form1 frm;
public ShowForm()
{
frm = new Form1();
frm.Show();
}
又怎么防止Show出两个相同的窗体
public ShowForm()
{
Form1 frm = new Form1();
frm.Show();
}
执行两次ShowForm()
怎么防止Show出两个相同的窗体?
2.如果把frm改成外部变量
Form1 frm;
public ShowForm()
{
frm = new Form1();
frm.Show();
}
又怎么防止Show出两个相同的窗体
Form1 frm2 = new Form1;
//也可以是
//Form1 frm[int] = new Form1
可以只让窗口只能show出一个来
SHOW的时候现判断实例化没·····实例化就不SHOW ·····释放的时候要把实力=null
ShouDialog()可是个好东西,用对话框打开或者参考http://blog.csdn.net/knight94/archive/2006/05/24/752783.aspx(程序以及窗体运行的唯一性汇总)
Mutex MyMutex = new Mutex(true, "ccv", out isExist);
if (isExist)
{
frm = new Form1();
frm.Show();
}
else
{
MessageBox.Show("此程序已在运行!");
Application.Exit();
}
这样试试
{
if ( newForm == null )
newForm = new Form1();
newForm.Show();
}
{ public MainForm()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form1 newForm = Form1.Instance();
newForm.Show();
}
}
public partial class Form1 : Form
{
private static Form1 _Instance; private Form1()
{
InitializeComponent();
} public static Form1 Instance() //实例化的时候使用此静态函数
{
if (Form1._Instance == null)
Form1._Instance = new Form1();
return Form1._Instance;
} private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Form1._Instance.Dispose();
Form1._Instance = null;
}
}