DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MDIの子フォームから子フォームを表示させる。

環境/言語:[C#]
分類:[その他]

はじめまして「じょん」と申します。

現在MDIフォームを使用したアプリケーションを作成しています。
Form1(親フォーム)、Form2,Form3(子フォーム)とあり、
Form1の中にForm2を表示させるようにしていて、そこから、
Form2にあるボタンをクリックするとForm1の中にForm3を表示させる
ようにしたいのですが、ちなみにForm2のボタンには、

private void button1_Click(object sender, EventArgs e)
        {
            frm4 f = new frm4();
            f.ShowDialog(this.MdiParent);
            f.Dispose();
            
        }

と書いているのですが、Form1の中には表示されず、
Form1の外側に表示されてしまいます。

どのようにコードを書けばForm1の中に表示されるでしょうか?

教えていただけますでしょうか。
■No23616に返信(じょんさんの記事)
> はじめまして「じょん」と申します。
>
> 現在MDIフォームを使用したアプリケーションを作成しています。
> Form1(親フォーム)、Form2,Form3(子フォーム)とあり、
> Form1の中にForm2を表示させるようにしていて、そこから、
> Form2にあるボタンをクリックするとForm1の中にForm3を表示させる
> ようにしたいのですが、ちなみにForm2のボタンには、
>
> private void button1_Click(object sender, EventArgs e)
> {
> frm4 f = new frm4();
> f.ShowDialog(this.MdiParent);
> f.Dispose();
>
> }
>
> と書いているのですが、Form1の中には表示されず、
> Form1の外側に表示されてしまいます。
>
> どのようにコードを書けばForm1の中に表示されるでしょうか?
>
> 教えていただけますでしょうか。

とりあえずこれをどうぞ。
http://msdn.microsoft.com/ja-jp/library/7aw8zc76.aspx
■No23616に返信(じょんさんの記事)

Form2で、Form3(子フォーム)を作成するのではなく、
Form2からForm1の子フォーム作成処理を呼んでForm3を作成するとか

親フォームを経由して子フォーム作成する仕組みにする。
2008/12/16(Tue) 19:10:50 編集(投稿者)

■No23619に返信(やじゅさんの記事)


クリックイベントの中身を、

 frm3 f = new frm3();
 f.MdiParent = this.MdiParent;
 f.Show();     


とする事で解決できました。

アドバイスありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板