2011-11-01 28 views
9

私はMDIフォームを持っています。別の子フォームから子フォームを開き、MDIを親フォームに設定する - どのようにすればよいですか?

をこれは期待通り、この作品MainForm

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

です:このMDIフォーム内私が使用して、いくつかの子フォームを開くことができます!

しかし、今、私は子フォーム(Form1 - > F1)にいる間、私はMainFormの子として別のフォームを開きたいが、私はthisキーワードを使用する場合、それはf1にrefferます。 f1内で新しいフォームを開き、MdiParentMainFormに設定するにはどうすればよいですか?

+1

おそらくthis.MdiParentを使用できます。通常は、親ウィンドウに子ウィンドウを作成したままにすることをお勧めします。行動を起こすようにイベントを使用します。 –

答えて

30

はあなたの最初の子の親フォームを割り当てる試してみてくださいから:

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

これが役立ちます。

11

MDI親フォームに新しいフォームF2を作成するためのフォームF1にコードがなり、私たちは二番目の形式はf2.Thenであると仮定してみましょう:

Form2 f2 = new Form2; 
f2.MdiParent = this.MdiParent; 
f2.Show(); 
3

まあ、記載されていた「ソリューション」と主張しない...しかし、私は要求を正しく理解し、私は次のことを行うと、上記の溶液のdidntの仕事をしようとしている場合....

Form2 f2 = new Form2(); 
     f2.MdiParent = MDIParent1.ActiveForm; 
     f2.Show(); 
関連する問題