DOBON.NET

フォーム内にフォームを表示する

下図のように(ちょっと分かりにくいですが)、MDIではなく、フォーム内にフォームを表示させるという、ちょっと変わったTipsです。いったい何の役に立つのかは分かりませんが、面白い使い方があるかもしれません。

フォームクラス(System.Windows.Forms.Form)はコントロールクラス(System.Windows.Forms.Control)からの派生クラスなので、フォームにフォームをコントロールとして追加することができるはずです。しかしそのままではエラーが発生し、不可能です。これは、追加するフォームがトップレベルウィンドウとされているためです。よって、フォームのTopLevelプロパティをFalseにしてからフォームのコントロールとして追加する必要があります。

次のコードはフォームクラス(Form1等)内に書かれているものとし、そのフォームの中にForm2を表示しています。

VB.NET
コードを隠すコードを選択
'表示させるフォームのインスタンスを作成
Dim f As New Form2()
'TopLevelをFalseにする
f.TopLevel = False
'フォームのコントロールに追加する
Me.Controls.Add(f)
'フォームを表示する
f.Show()
'最前面へ移動
f.BringToFront()
C#
コードを隠すコードを選択
//表示させるフォームのインスタンスを作成
Form2 f = new Form2();
//TopLevelをFalseにする
f.TopLevel = false;
//フォームのコントロールに追加する
this.Controls.Add(f);
//フォームを表示する
f.Show();
//最前面へ移動
f.BringToFront();

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。