窗体单例模式

在winform应用程序中,创建两个窗体form1和form2。

form1中有一个button,button的click事件时打开窗体2:

  private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();
            form.Show();          
        }

当程序运行时,单击窗体1的Button可以出现form2并且继续点击依然会出现form2,我们此时可以使用单例模式来使只有第一次点击button时出现form2,再点击无效。

我们在Form2.cs中写入这样一段代码:

  private static Form2 _form;
  public static Form2 Create()
        {
            if (_form == null)
            {
                _form = new Form2();
            }
            return _form;
        }

这段代码保证了当_form new过之后不会再重新new一个form2对象,从而达到了单例模式的效果,

同时我们改一下button的click事件中的代码:

  private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = Form2.Create();
            form.Show();
        }
原文地址:https://www.cnblogs.com/rurui/p/6565211.html