2010-09-27 3 views
0

У меня есть некоторые проблемы при разработке приложений MDI с использованием Windows Forms.Открытие дочерних окон из другого дочернего окна в MDI

Представьте небольшое тестовое приложение с тремя формами: Form1, Form2 и Form3. Form1 - это MdiContainer (с прикрепленным элементом menuStrip с одним ботоном - для целей тестирования). Форма 2 содержит только одну кнопку. Form2 открывается нажатием кнопки Form1 menuStrip. Форма 3 должна открыться нажатием кнопки Form2.

Я уже использовал Google для этой проблемы, но ничего полезного.

Мой код ниже:

Form1

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void menu2ToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     Form2 chWin = new Form2(); 
     chWin.MdiParent = this; 
     chWin.Show(); 
    } 
} 

Form2

public partial class Form2 : Form 
{ 
    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form3 form3 = new Form3(); 
     form3.Show(); 
    } 
} 

Форма Form3 фактически не имеет никакого кода вообще.

Совершенно очевидно, что я как-то заявляю, что Form3 должен быть ребенком Form1, но как? :)

Заранее благодарен!

ответ

4

Установите Form.MdiParent недвижимость на form3:

form3.MdiParent = this.MdiParent; 
+0

В какой блок кода я должен изменить это свойство? – sturmgewehr

+0

Я думаю, что если я добавлю такое свойство - form3 будет родителем формы2, а не form1, поскольку мне нужно – sturmgewehr

+0

, это 'this' выше является экземпляром Form2, а его свойство MdiParent указывает на Form1, поэтому это должно установить MdiParent form3 в точку также формировать1. –

Смежные вопросы