下図のように(ちょっと分かりにくいですが)、MDIではなく、フォーム内にフォームを表示させるという、ちょっと変わったTipsです。いったい何の役に立つのかは分かりませんが、面白い使い方があるかもしれません。
フォームクラス(System.Windows.Forms.Form)はコントロールクラス(System.Windows.Forms.Control)からの派生クラスなので、フォームにフォームをコントロールとして追加することができるはずです。しかしそのままではエラーが発生し、不可能です。これは、追加するフォームがトップレベルウィンドウとされているためです。よって、フォームのTopLevelプロパティをFalseにしてからフォームのコントロールとして追加する必要があります。
次のコードはフォームクラス(Form1等)内に書かれているものとし、そのフォームの中にForm2を表示しています。
'表示させるフォームのインスタンスを作成 Dim f As New Form2() 'TopLevelをFalseにする f.TopLevel = False 'フォームのコントロールに追加する Me.Controls.Add(f) 'フォームを表示する f.Show() '最前面へ移動 f.BringToFront()
//表示させるフォームのインスタンスを作成 Form2 f = new Form2(); //TopLevelをFalseにする f.TopLevel = false; //フォームのコントロールに追加する this.Controls.Add(f); //フォームを表示する f.Show(); //最前面へ移動 f.BringToFront();
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。