文档界面
分类: 1、单文档界面应用程序(SDI) 特点: 1、应用程序中SDI的所有窗体都彼此独立 2、多文档界面应用程序(MDI) 特点: 1、每个应用程序中只能有一个MDI父窗体,在父窗体中可以打开多个MDI子窗体 2、任何MDI子窗体都只能在父窗体内部区域活动。 3、当关闭任何子窗体时,对其他打开的子窗体以及父窗体均没有任何影响。 4、当关闭父窗体时,将关闭所有打开的子窗体。 实现步骤: 1、设置MDI父窗体 设置窗体IsMdiContainer属性为true:则当前窗体为MDI父窗体 2、设置MDI子窗体代码如下 窗体名 对象名=new 窗体名(); 对象名.MdiParent =this; 对象名.Show(); 注意:MDI子窗体在弹窗出现时一定不能设置为模式弹窗 即:只能为Show弹窗===================================================================================================================一、MDI窗体设置和其子窗体设置 1、设置窗体的IsMdiContainer属性为true 2、设置MDI窗体的子窗体 子窗体1 子窗体=new 子窗体1(); 子窗体.MdiParent=this; 子窗体.Show();二、MDI窗体的子窗体排列
1、水平对齐:this.LayoutMdi(MdiLayout.TileHorizontal); 2、垂直平铺:this.LayoutMdi(MdiLayout.TileVertical); 3、层叠:this.LayoutMdi(MdiLayout.Cascade); 4、排列所以图表:this.LayoutMdi(MdiLayout.ArrangeIcons);三、获取子窗体的数量 1、MessageBox.Show(this.MdiChildren.Length+"");四、MDI窗体中窗口只允许打开一个 /// <summary> /// 判断MDI子窗体是否存在 存在就显示 /// </summary> /// <param name="formName">窗体名</param> /// <returns></returns> public bool IsSunFrmOpen(string formName) { // 子窗体是否已经打开了?(用循环来判断) foreach (Form childrenForm in this.MdiChildren) { //检测是不是当前子窗体名称 if (childrenForm.Name == formName) { //是的话就是把他显示 childrenForm.Visible = true; //恢复窗体的默认状态 childrenForm.WindowState = FormWindowState.Normal; return true; } } return false; } 调用如下: private void **_Click(object sender, EventArgs e) { //判断名字为Form1的子窗体是否存在 存在就显示 否则就创建 if (!IsSunFrmOpen("Form1")) { //不存在就创建窗体对象 Form1 f1 = new Form1(); f1.MdiParent = this; f1.Show(); } }