MDI窗体容器

Posted 朱利军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDI窗体容器相关的知识,希望对你有一定的参考价值。

MDI窗体容器:

一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体

在内部的窗体不管怎么调整,是无法跳出其父级窗体容器的

注:如果想让内部窗体一直最大化并且不要其显示最大化最小化按钮,可将其FormBorderStyle设置为None,Win7系统另外需要将此窗体放入一个Panel容器中

复制代码
private void 销售ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();

            f2.WindowState = FormWindowState.Maximized;

            f2.FormBorderStyle = FormBorderStyle.None;

            f2.MdiParent = this;

            f2.Parent = panel1;

            f2.Show();
        }
复制代码

另:内部窗体打开后是不会跟随外部窗体大小变化而自适应的,此时需要另想办法,比如可以在窗体大小改变事件中让内部窗体重新恢复普通并重新最大化

复制代码
 private void Form1_SizeChanged(object sender, EventArgs e)
        {
            foreach (var c in panel1.Controls)
            {
                if (c is Form2)
                {
                    (c as Form2).WindowState = FormWindowState.Normal;
                    (c as Form2).WindowState = FormWindowState.Maximized;
                }
            
            }
        }
复制代码

以上是关于MDI窗体容器的主要内容,如果未能解决你的问题,请参考以下文章

MDI窗体容器

Winform MDI窗体容器权限简单通讯

winform 之MDI容器

C#-WinForm-MDI窗体容器权限设置

VB6中 怎么让MDI子窗体始终填满父容器,并随MDI窗体的大小改变而改变?

winform(MDI窗体容器权限设置)