Делая нормальную форму как MDI - PullRequest
1 голос
/ 29 июля 2011

Я работаю над приложением, в котором мне нужно показывать разные формы, сложенные друг на друга. Из-за некоторых ограничений я не могу использовать MDI, а также у него много проблем.

Я могу получить то, что хочу, но с проблемой. Формы будут сложены, но они не останутся в родительской форме. Возьмем для примера. Структура идет так. 1) Есть форма А (Моя родительская форма) 2) вторая форма «B» открывается по событию нажатия кнопки на форме «A». (Примечание: B.ShowInTaskBar = False) 3) снова, третья форма «C» открывается при событии нажатия кнопки в форме «B». (Примечание: C.ShowInTaskBar = False)

Теперь, когда я минимизирую форму A, она минимизируется, но формы B и C остаются такими, как есть. Я хочу, чтобы они были минимизированы одновременно. Я хочу, чтобы форма B и C оставались дочерней формой формы A.

Как это получить.

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Просто используйте формы MDI.Не существует технических ограничений относительно значения FormBorderStyle для детей с ДИ.Не забудьте установить для свойства IsMdiContainer значение true для родительской формы, а затем установить для свойства MdiParent дочерней формы родительскую форму перед вызовом Show().

Редактировать: Я не совсем уверен, что вы имеете в виду, составляя.Вы можете легко контролировать дочерние позиции, если это то, что вы имеете в виду:

public void ShowChildren()
{
    Child child1 = new Child();
    Child child2 = new Child();

    child1.MdiParent = this;
    child2.MdiParent = this;

    child1.Show();
    child2.Show();

    child1.Size = new System.Drawing.Size(100, 100);
    child1.Location = new System.Drawing.Point(0, 0);
    child2.Size = new System.Drawing.Size(100, 100);
    child2.Location = new System.Drawing.Point(0, 100);
}

Edit # 2: Вы пытаетесь вложить формы?Если это так, вы можете сделать родителя нормальной формой и поместить UserControl A в родителя.Затем поместите UserControl B в UserControl A. Предоставление пользователю возможности перемещать их становится более трудным, но если вы уже не хотели иметь границы, это может быть проблемой для вас.

0 голосов
/ 02 сентября 2014
public void formMain_buttonShowA_click() {
    FormA formA = new FormA();
    formA.ShowDialog();
}

public void formA_buttonShowB_click() {
   FormB formB = new FormB();
   formB.ShowDialog();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...