语言C#.net 如何将子窗体嵌入到父窗体里面
2017-12-18 · 知道合伙人软件行家
1、设置父窗体:
如果要将某个窗体设置为父窗体,只需将该窗体的IsMdiContainer属性设置为True即可。
2、设置子窗体:
通过设为某个窗体的MdiParent属性来确定该窗体是那个窗体的子窗体。
语法如下:
1: public Form MdiParent{get;set;}
3、排列MDI子窗体:
语法如下:
1: public void LayoutMdi(MdiLayout value)
value:是MdiLayout的枚举值之一,用来定义MDI子窗体的布局。
枚举成员 说明
Cascade 层叠排列MDI子窗体
TileHorizontal 水平平铺MDI子窗体
TileVertical 垂直平铺MDI子窗体
例程;
1: public partial class FormMain : Form
2: {
3: public FormMain()
4: {
5: InitializeComponent();
6: }
7:
8: private void 加载子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
9: {
10: FormChild_1 frm1 = new FormChild_1();
11: frm1.MdiParent = this;
12: frm1.Show();
13:
14: FormChild_2 frm2 = new FormChild_2();
15: frm2.MdiParent = this;
16: frm2.Show();
17:
18: FormChild_3 frm3 = new FormChild_3();
19: frm3.MdiParent = this;
20: frm3.Show();
21: }
22:
23: private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
24: {
25: LayoutMdi(MdiLayout.TileHorizontal);
26: }
27:
28: private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
29: {
30: LayoutMdi(MdiLayout.TileVertical);
31: }
32:
33: private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
34: {
35: LayoutMdi(MdiLayout.Cascade);
36: }
37:
38: }
请问我按照上述的方法写了,我把他写在主窗体的菜单栏,没问题。
我现在想在一个子窗体的button里面实现关闭一个子窗体,同时打开另外一个子窗体。
我在button的事件里面直接调用主窗体的代码,也不能实现嵌入,这是为什么?