web-dev-qa-db-ja.com

別の子フォームから子フォームを開いて、MDI=親フォームに設定します-方法は?

私はMDIフォームを持っています。この中にMDIフォームいくつかの子フォームを開くことができます:

これはMainForm内にあります

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

これは期待どおりに動作します!

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

11
Saeid Yazdani

最初の子の親フォームを次から割り当ててみてください:

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

お役に立てれば。

36
Gabe Thorns

2番目のフォームがf2であると仮定します。次に、フォームf1のコードで、新しいフォームf2をMDI親フォームに作成します。

Form2 f2 = new Form2;
f2.MdiParent = this.MdiParent;
f2.Show();
12
Mazen313

さて、リストされた「解決策」と議論しないでください...しかし、私がリクエストを正しく理解していて、上記の解決策を試してもうまくいかなかった場合、私は次のようにします...

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