zoukankan      html  css  js  c++  java
  • MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现

    MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
    文章出处:http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/200727/13217.html

    晚上逛CSDN论坛的时候,看到C#区有位朋友问“防止MDI子窗体被多次实例化”,我随即写了这篇文章。

    其实这个问题,就是经典的23种设计模式中的单件模式(Singleton),下面用C#实现之:

    首先我们有2个Windows Form,主窗体叫Form1,子窗体叫ChildForm。在主窗体中加入一Menu,用来实例化子窗

    体,我们在Form1.cs中写入下代码:

    private static ChildForm childForm; //静态变量,保存唯一实例

    private void menuItem2_Click(object sender, System.EventArgs e)
    {
    ChildForm childForm = GetChildForm(); //获取子窗体对象
    childForm.Show(); //显示之
    }

    private ChildForm GetChildForm()
    {
    //先后次序不能错,前一个条件用来判断是否是第一次,后一个条件用来判断子窗体是否被关闭了
    if( childForm == null || childForm.IsDisposed )
    { //第一次实例化也好,被关了也好,都重新实例化
    childForm = new ChildForm();
    childForm.MdiParent = this;
    }

    return childForm;
    }

         

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    P2494 [SDOI2011]保密 最小割
    P2765 魔术球问题
    [CTSC2008]祭祀river
    CF311E Biologist
    P4177 [CEOI2008]order
    函数的形参和实参
    python字符编码
    源码安装Vim并配置YCM自动补全插件
    Python基础练习之购物车
    Python字符串的所有操作
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347456.html
Copyright © 2011-2022 走看看