初学请教:
建立一个按钮myButton,点击后弹出一个子窗口myWindow,怎样才能让按钮myButton再次被点击时弹出的还是刚才弹出的子窗口myWindow。我采用show(),好像不对。请问我该怎么写?private void myButton_Click(object sender, System.EventArgs e)
{
myWindow frmmyWindow=new myWindow();
frmmyWindow.MdiParent=this;
frmmyWindow.Show();
 }

解决方案 »

  1.   

    举例如下:窗体构造函数如下:public Company()
    {
             //单件模式保证窗体只打开一次
             if(instance == null)
    {
    instance = this;
    }
    else
    {
    this.Dispose();
    instance.Activate();
    return;
    } InitializeComponent();
    }
      

  2.   

    错了,上面的代码是用反射调用dll窗体的单件模式,下面的例子是普通窗体单件模式的例子:/// <summary>
    /// 单件模式的实现,静态初始化
    /// </summary>
    public class AddDepartment : System.Windows.Forms.Form
    {
    private static  AddDepartment instance = null;
    //返回需要的窗体类实例
    public static AddDepartment GetInstance() 
    {
    if(instance == null)
    {
    instance = new AddDepartment();
    }
           return instance;   
              }           private void CloseWindow_Click(object sender, System.EventArgs e)
              { 
             this.Close();
                      //关闭窗体时这句不能少
             AddDepartment.instance = null;
              }
    }打开窗体的父窗体代码:
    private void OpenWindow_Click(object sender, System.EventArgs e)
    {
    //取得窗体实例
             AddDepartment frm  = AddDepartment.GetInstance();
             //显示窗体
    frm.Show();
    }
      

  3.   

    谢谢killerwc帮助,问题已经解决!