• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#设置MDI子窗体只能弹出一个的方法

C#设置MDI子窗体只能弹出一个的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#mdi子窗体,c#mdi窗体,c#mdi,c#mdi容器,mdi子窗体等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Windows程序设计中的MDI(Multiple Document Interface)官方解释就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序。

新建一个WindowForm程序。得到一个窗体作为我们父窗体Parent。拖入一个menustrip空间。在新建一个窗体FrmChildren作为我们子窗体,界面如下图所示:

其代码如下所示:

public Form1()
{
  InitializeComponent();
  //将Form1设置为MDI窗体,当然在Form1的IsMdiContainer属性页可以设置
  this.IsMdiContainer = true;
}
</div>

在menustrip打开子窗体的事件代码如下:

private void tsmiOpenWindow_Click(object sender, EventArgs e)
{  
  FrmChildren child = FrmChildren.GetWindow();//调用方法
  child.MdiParent = this;//设置child的父窗体为当前窗体
  child.Show();
  
}
</div>

GetWindow()这个方法在哪里呢。当然是在FrmChildren子窗体里面写

 public partial class FrmChildren : Form
  {
    private FrmChildren() //由 public FrmChildren改为 private FrmChildren
    {
      InitializeComponent();
    }
    static FrmChildren fc = null; 创建一个静态对象
    public static FrmChildren GetWindow()
    {  //当子窗体没有开启或者已经释放。就可以创建新窗体
      if (fc==null||fc.IsDisposed)
      {
        fc = new FrmChildren();
      }
      return fc;
    }
  }

</div>

第二种方法:

这种方法个人觉得很简单。直接在在menustrip打开子窗体的事件下面写就ok了

private void tsmiOpenWindow_Click(object sender, EventArgs e)
{ 

#region 方法二Application收集打开的窗体,用索引器来寻找,就是窗体的Name属性
//方法二.如果没有Name为FrmChildren的子船体,实例化创建。和之前的正规做法没有什么差别,只是多了判断。
if (Application.OpenForms["FrmChildren"] == null)
{
FrmChildren child = new FrmChildren();
child.MdiParent = this;
child.Show();
}
else//有Name为FrmChildren的子船体,就直接show()
{
Application.OpenForms["FrmChildren"].Show();
}
#endregion
}

</div>

感兴趣的朋友可以调试运行一下本文所述示例,相信会有不小的收获。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#设置MDI子窗体只能弹出一个的方法

相关文章

  • 2017-05-28C#实现统计字数功能的方法
  • 2017-05-28使用C#获取网页HTML源码的例子
  • 2017-05-28C#身份证号码验证是否正确
  • 2017-05-28C#根据年月日计算星期几的函数
  • 2017-05-28C#语言中字符类char的使用方法(总结)
  • 2017-05-28Winform实现调用asp.net数据接口实例
  • 2017-05-28c# winform窗口一直置顶显示在桌面最上方或最底层的方法
  • 2017-05-28c#图像截取实例
  • 2017-05-28C#基础知识之this关键字介绍
  • 2017-05-28C#统计C、C++及C#程序代码行数的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#的四个基本技巧
    • C#独立域名查询代码
    • C#数据结构之队列(Quene)实例详解
    • sqlserver备份还原数据库功能封装分享
    • C#实现计算年龄的简单方法汇总
    • C#如何实现对sql server数据库的增删改查
    • c#创建windows服务(Windows Services)详细步骤
    • 逐步讲解快速排序算法及C#版的实现示例
    • c#实现网页图片提取工具代码分享
    • C#泛型和反射实例解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有