C#WinForms MDI问题

use*_*717 1 c# mdi winforms

你好guyes我有一个问题我有1个父母形式和3个孩子我只是想打开他们最大化但是当我在左侧做这个3控制.如何在没有此控件的情况下打开一个表单.如果我以错误的方式做这件事,请告诉我一些mdi对这些事情好吗?

请看这张图片http://img440.imageshack.us/img440/6831/mdinz.jpg http://img139.imageshack.us/img139/4687/mdi1.jpg

Han*_*ant 5

这是MDI实现中的已知错误,在父构造函数中创建最大化子窗口时触发.这是一个例子:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        var child = new Form2();
        child.MdiParent = this;
        child.WindowState = FormWindowState.Maximized;
        child.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)

您将看到两次显示最小/最大/恢复字形,恢复子窗口会在屏幕上显示MDI条,就像在第一个屏幕截图中一样.解决方法是将子创建代码移动到OnLoad()方法.像这样:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);
        var child = new Form2();
        child.MdiParent = this;
        child.WindowState = FormWindowState.Maximized;
        child.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)