MDI窗体(附示例)

简介:

前言

  在做winfrom项目的时候我们可能会用到嵌套窗体,就是说一个容器中有多个窗体,可以分别管理和应用这些窗体,.net中提供了一种机制就是MDI,可能大家都会用,这边就简单的介绍下。

简单应用

  winfrom中怎么用MDI呢,其实只要设置窗体的一个属性就可以了:

  IsMdiContainer属性设置为true就表示该窗体为MDI窗体,很简单,那我们可以在窗体加载的时候这些写:

复制代码
 1         private void Form1_Load(object sender, EventArgs e)
 2         {
 3             Form childForm1 = new Form();
 4             childForm1.Text = "窗口1";
 5             childForm1.MdiParent = this;
 6             childForm1.Show();
 7 
 8             Form childForm2 = new Form();
 9             childForm2.Text = "窗口2";
10             childForm2.MdiParent = this;
11             childForm2.Show();
12         }
复制代码

  childForm1.MdiParent = this;这句代码的意思就是设置子窗体的MDI父窗体为本窗体,看下运行效果:

基本方法

  关于MDI相关的方法主要是窗体的布局方法LayoutMdi(),参数是MdiLayout枚举:

  成员名称 说明
  ArrangeIcons 所有 MDI 子图标均排列在 MDI 父窗体的工作区内。
  Cascade 所有 MDI 子窗口均层叠在 MDI 父窗体的工作区内。
  TileHorizontal 所有 MDI 子窗口均水平平铺在 MDI 父窗体的工作区内。
  TileVertical 所有 MDI 子窗口均垂直平铺在 MDI 父窗体的工作区内。

  LayoutMdi(MdiLayout.Cascade);效果:

  LayoutMdi(MdiLayout.TileHorizontal);效果:

仿Notepad小程序

  我们在办公的时候可能都用过Notepad++,很方便,其实Notepad++里面的窗体就有点MDI的感觉:

  我们也可以利用MDI做出类似的感效果,Notepad++是文本编辑器,里面每个窗体其实就是单独的Notepad,首先我们需要先建一个文件编辑器的窗体,其实就是一个RichTextBox控件,因为RichTextBox控件是富文本编辑器,所以我们可以进行字体和颜色的调整,调整字体和颜色用的是winfrom的组件,关于文本编辑器就不详述了,贴下代码:

  View Code

  文件编辑器做好了,下面就是主窗体,首先IsMdiContainer属性设置为true,在上面我们加下菜单:

  新建Notepad的代码:

复制代码
1         private void tsmiNewTxt_Click(object sender, EventArgs e)
2         {
3             NotepadForm childForm = new NotepadForm();
4             childForm.Text = "新建文本文档.txt";
5             childForm.MdiParent = this;
6             childForm.Show();
7         }
复制代码

  运行效果:



本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/3547577.html,如需转载请自行联系原作者

相关文章
|
9月前
|
API
vb如何设置父窗体与子窗体——MDI窗体
vb如何设置父窗体与子窗体——MDI窗体
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程-51:窗体CancelButton的使用
C#编程-51:窗体CancelButton的使用
113 0
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体-57
|
Windows
WinForm——MDI窗体
WinForm——MDI窗体
318 0
WinForm——MDI窗体
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
146 0
VB编程:ReleaseCapture&SendMessage拖动无标题栏的窗体
|
API Windows
Delphi 使窗体Showmodal后可以操作其他窗体
对话框ShowModal之后不能操作其它窗口,实际上是因为Windows Disable了其它窗口。所以当你需要在模态对话框中访问其它已经可见的窗口时,需要用EnableWindow API来激活对应的窗口。
1065 0
MFC设置窗体大小SetWindowPos
SetWindowPos(NULL,0,0,200,300,SWP_NOMOVE);     表示不考虑(0,0),仅仅将大小改为200x300,位置不变    SetWindowPos(NULL,0,0,200,300,SWP_NOMOVE);    表示不考虑200X300,只是把位置挪到(0,0).
4058 0