前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WinForm MDIParent如何防止重复打开

WinForm MDIParent如何防止重复打开

作者头像
跟着阿笨一起玩NET
发布2019-03-14 10:26:51
1K0
发布2019-03-14 10:26:51
举报

DI,全称是多文档界面(Multiple Document Interface),主要应用于基于图形用户界面的系统中。其目的是同时打开和显示多个文档,便于参考和编辑资料。

  下面是一个WinForm MDI小例子。

代码语言:javascript
复制
 1 using System;
 2 using System.Windows.Forms;
 3 
 4 namespace WinFormMDI
 5 {
 6     public partial class FrmMain : Form
 7     {
 8         public FrmMain()
 9         {
10             InitializeComponent();
11         }
12 
13         private void Child1ToolStripMenuItem_Click(object sender, EventArgs e)
14         {
15             ShowSingleWindow(typeof(FrmChild1));
16         }
17 
18         private void Child2ToolStripMenuItem_Click(object sender, EventArgs e)
19         {
20             ShowSingleWindow(typeof(FrmChild2));
21         }
22 
23         private void ShowSingleWindow(Type type)
24         {
25             foreach (Form f in this.MdiChildren)
26             {
27                 if (f.GetType() == type)
28                 {
29                     f.Activate();
30                     return;
31                 }
32             }
33 
34             Form frm = type.Assembly.CreateInstance(type.ToString()) as Form;
35             frm.MdiParent = this;
36             frm.WindowState = FormWindowState.Maximized;
37             frm.Show();
38         }
39     }
40 }

  注:要先设置FrmMain的IsMdiContainer属性为true,这样才能作为mdicontainer。ShowSingleWindow则实现child form实例只有一个。

  效果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档