Открытие дочерней формы из другой дочерней формы и установка MDI в родительскую форму - как это сделать? - PullRequest
11 голосов
/ 01 ноября 2011

У меня есть форма MDI.в этой форме MDI я могу открыть некоторые дочерние формы, используя:

Это в пределах MainForm

Form1 f1 = new Form1;
f1.MdiParent = this; //this refers to MainForm (parent)
f1.Show();

Это работает, как и ожидалось!

Но сейчас, пока яв дочерней форме (Form1 -> f1) я хочу открыть другую форму как дочернюю для MainForm, но когда я использую ключевое слово this, оно будет отображаться как f1.Как я могу открыть новую форму в f1 и установить ее MdiParent в MainForm?

Ответы [ 3 ]

35 голосов
/ 01 ноября 2011

Попробуйте назначить родительскую форму вашего первого ребенка из:

Form2 f2 = new Form2;
f2.MdiParent = this.ParentForm; //this refers to f1's parent, the MainForm
f2.Show();

Надеюсь, это поможет.

12 голосов
/ 01 ноября 2011

Предположим, что вторая форма - f2. Затем код в форме f1 для создания новой формы f2 в родительской форме MDI будет иметь вид:

Form2 f2 = new Form2;
f2.MdiParent = this.MdiParent;
f2.Show();
4 голосов
/ 01 ноября 2012

Ну, не спорю с "решением", которое было перечислено ... но если я правильно понял запрос и попытка решения, описанного выше, не сработала, я бы сделал следующее ...

Form2 f2 = new Form2();
        f2.MdiParent = MDIParent1.ActiveForm;
        f2.Show();
...