zoukankan      html  css  js  c++  java
  • (转)Single Instance Form in a MDI application

    private void OpenForm<T>() where T : Form, new()
    {
        T frm = (T)new List<Form>(this.MdiChildren).Find(f => f is T) ?? new T() { MdiParent = this };
     
        frm.Show();
        frm.Focus();
    }
    View Code
    OpenForm<NewForm>();
    View Code

     另外的一种写法:

     public partial class MDIForm : Form
       {
          private Child1Form mChild1Form = null;
          private Child2Form mChild2Form = null;
     
          public MDIForm()
          {
             InitializeComponent();
          }
     
          private Form ShowOrActiveForm(Form form, Type t)
          {
             if (form == null)
             {
                form = (Form)Activator.CreateInstance(t);
                form.MdiParent = this;
                form.Show();
             }
             else
             {
                if (form.IsDisposed)
                {
                   form = (Form)Activator.CreateInstance(t);
                   form.MdiParent = this;
                   form.Show();
                }
                else
                {
                   form.Activate();
                }
             }
             return form;
          }
     
          private void newToolStripButton_Click(object sender, EventArgs e)
          {
             mChild1Form = ShowOrActiveForm(mChild1Form, typeof(Child1Form)) as Child1Form;
          }
     
          private void openToolStripMenuItem_Click(object sender, EventArgs e)
          {
             mChild2Form = ShowOrActiveForm(mChild2Form, typeof(Child2Form)) as Child2Form;
          }
       }
    View Code
  • 相关阅读:
    Python 面向对象
    python Flask
    工作中的Python脚本
    python模块
    python函数
    Python小课题练习作业
    Python文件处理
    Maven 生成可执行的jar包
    Maven [ERROR] 不再支持源选项 5。请使用 6 或更高版本
    MySQL 导入导出数据
  • 原文地址:https://www.cnblogs.com/ywcz060/p/3470791.html
Copyright © 2011-2022 走看看