簡體   English   中英

C#WinForms MDI問題

[英]C# WinForms MDI problem

大家好,我有一個問題,我有1個家長表格和3個孩子,我只想最大化地打開它們,但是當我在左側進行操作時,就會出現這3個控件。 沒有此控件,如何打開一種表單。 如果我以錯誤的方式這樣做,請告訴我某些東西對這種事情有好處嗎?

請參閱此圖片http://img440.imageshack.us/img440/6831/mdinz.jpg http://img139.imageshack.us/img139/4687/mdi1.jpg

這是MDI實現中的一個已知錯誤,當​​您在父構造函數中創建最大化的子窗口時觸發。 這是一個例子:

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

您將看到兩次顯示的最小/最大/還原字形,還原子窗口將在屏幕上留下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();
    }
}

如果需要,可以使用ControlBox, FormBorderStyle, MaximizeBoxMinimizeBox屬性從表單中刪除各種窗口UI元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM