读书人

急救 怎么保证打开窗体的唯一性

发布时间: 2012-01-24 23:11:54 作者: rapoo

急救 如何保证打开窗体的唯一性?
这是我要打开窗体的二句代码,我想实现点击toolStripMenuItem1时,如果窗体没有打开,那就打开,如果已经打开,再点击的时候什么也不做? 谢谢各位?
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
Form f2 = new Form();
f2.Show();
}




[解决办法]

C# code
      Form f2 = new Form();         private void button1_Click(object sender, EventArgs e)        {                f2.Show();        }
[解决办法]
C# code
        Form f2;        private void toolStripMenuItem1_Click(object sender, EventArgs e)         {             if(!f2.Created)            {               f2=new Form();               f2.Show();            }        }
[解决办法]
单件模式

C# code
public class Form2(){  private Form2 f2;  private Form2()  {     //构造函数声明为私有  }  public static Form2 GetForm2()  {    if(this.f2==null)    {      this.f2=new Form2();    }    return this.f2;  }}
[解决办法]
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{

if(f2==null||f2.Disposed)
{Form f2 = new Form(); }
f2.Show();
}
[解决办法]
参考如下:

C# code
private Form f2 = null;private void toolStripMenuItem1_Click(object sender, EventArgs e){    if (f2 == null || f2.IsDisposed)    {        f2 = new Form();    }    f2.Show();}
[解决办法]
Form f2 = null;
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form();
}
f2.Show();
}


[解决办法]
如果是MDI窗体可参考下
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
Form f2 = new Form();
f2.Show();
foreach (Form form in this.MdiChildren)
{ if (form is Form)
{
form.Focus();
return;
}
}
Form f2 = new Form();
f2.MdiParent = this;
f2.Show();

}

读书人网 >C#

热点推荐