zoukankan      html  css  js  c++  java
  • 窗体的单例模式

    程序下载地址:

     http://download.csdn.net/detail/u010312811/9500747

    1.模式窗体与非模式窗体

      非模式窗体:创建的窗体与当前活动窗体没有建立任何关系,可以在新建窗体打开的情况下操作当前的活动窗体。

    1 frmMain m =new frmmain();
    2 m.Show();

      模式窗体:只有当新建的窗体关闭后,当前的活动窗体才能重新获得控制权。换句话说,如果不关闭新建窗体,则不能对原来的活动窗体进行任何操作。

    1 frmMain m = new frmMain();
    2 m.ShowDialog();

    2.使用模式窗体与非模式窗体的直观感受

      非模式窗体:(注:在任务栏也会出现一堆标明窗体的图标)

      

      模式窗体:(注:窗体只能打开一次,并且子窗体打开的情况下不能操作父窗体)

      

    3.如何使窗体只能打开一次,并且可以同时操作两个窗体

      如此便需要使用单例模式,原理是首先初始化一个静态的窗体。窗体显示时判断当前的窗体是否存在,存在则显示,否则新建。

    代码如下:

      创建一个静态的窗体

    1   static Form2 f2;
    1    private void 显示子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
    2    {
    3        GetChild().Show();
    4        child.Location = new Point(this.Location.X - 100, this.Location.Y + 50);
    5    }

      窗体的单例模式:

    1     private frmChild GetChild()
    2     {
    3         if (child == null || child.IsDisposed == true)
    4         {
    5             child = new frmChild();
    6         }
    7 
    8         return child;
    9     }

      效果图:

  • 相关阅读:
    策略思维模式
    初学者之心
    《计算机思维》笔记
    通才论
    Shell 脚本中 set ex 命令的作用
    Python—requests模块详解
    SharePoint CSOM 迁移列表项权限
    实践剖析.NET Core如何支持Cookie和JWT混合认证、授权
    面试突击13:方法优先调用可选参数还是固定参数?
    如何构建一个疾病的动物模型? | animal model of disease
  • 原文地址:https://www.cnblogs.com/imstrive/p/5426503.html
Copyright © 2011-2022 走看看