窗体容器MDI
Posted 微雨11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了窗体容器MDI相关的知识,希望对你有一定的参考价值。
什么是窗体容器MDI
效果和容器TabelControl差不多,区别就是一个是用来存放控件,一个来存放Form窗体
MDI应用
(1)如何把一个窗体变成MDI窗体
选中窗体,在窗口样式属性中,有一个属性样式叫做IsMdiContainer,选中True就把该窗体变成了一个MDI窗体
(2)把窗体放进去
//设置只能打开唯一集合,用来存放记录打开的Form List<Form> AllForm = new List<Form>(); private void 打开111ToolStripMenuItem_Click(object sender, EventArgs e) { //定义要打开的Form2是不存在的 bool hasf2 = false; //实例化要打开的Form2 Form2 f2 = new Form2(); //遍历集合,看是否存在Form2 foreach (Form f in AllForm) { //如果存在From2类型的窗体 if (f is Form2) { //证明Form2已经打开了 hasf2 = true; //把f转换成f2 f2 = f as Form2; } } //如果不存在Form2 if (!hasf2) { //打开的时候最大化 f2.WindowState = FormWindowState.Maximized; //设置f2的所在的MDI窗体是Form1 f2.MdiParent = this; //设置f2所在的父级,避免在菜单栏中存在关闭按钮 f2.Parent = panel1; //打开Form2 f2.Show(); //把f2添加到集合中 AllForm.Add(f2); } //如果存在Form2 else { //遍历集合,把所有Form都隐藏 foreach (Form ff in AllForm) { ff.Hide(); } //只打开f2 f2.Show(); } }
这里有注意事项:
(1)Form2 要设置属性为无边框,这样就不会存在关闭按钮了.
(2)用MDI制作安装程序步骤的时候,先让MDI打开自身的一个Panel1,上面放一个Button,点击按钮后,Button隐藏,然后在打开MDI内的其它窗体,避免闪屏情况出现.
以上是关于窗体容器MDI的主要内容,如果未能解决你的问题,请参考以下文章