C # WinForms MDI проблема - PullRequest
       1

C # WinForms MDI проблема

1 голос
/ 26 декабря 2010

Привет, ребята, у меня есть одна проблема, у меня есть 1 родительская форма и 3 ребенка, я просто хочу развернуть их в развернутом виде, но когда я делаю это в левой части, появляется 3 элемента управления.Как я могу открыть одну форму без этого элемента управления.Если я делаю это неправильно, пожалуйста, посоветуйте мне что-нибудь, что mdi хорошо для таких вещей?

пожалуйста, посмотрите эти фотографии http://img440.imageshack.us/img440/6831/mdinz.jpg http://img139.imageshack.us/img139/4687/mdi1.jpg

Ответы [ 2 ]

5 голосов
/ 26 декабря 2010

Это известная ошибка в реализации MDI, возникающая при создании развернутого дочернего окна в родительском конструкторе.Вот пример:

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

Вы увидите дважды отображенные глифы min / max / restore, а восстановление дочернего окна оставляет панель 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();
    }
}
0 голосов
/ 26 декабря 2010

Вы можете использовать свойства ControlBox, FormBorderStyle, MaximizeBox и MinimizeBox для удаления различных элементов пользовательского интерфейса окна из формы, если хотите.

...