モードレスのフォームが、あるフォームの背後に隠れないようにする例えば、Internet Exploreのページ検索ダイアログはモードレスですが、メインウィンドウの後ろに隠れることはありません。このようなモードレスのフォームを表示するには、下の例のように、そのフォームがメインフォーム(モードレスフォームを表示するフォーム)の所有となるように設定します。 [VB.NET] '表示させるフォームのインスタンスを作成 Dim f As New Form1() '表示させるフォームを所有する Me.AddOwnedForm(f) 'または次のようにする 'f.Owner = Me 'フォームをモードレスで表示する f.Show() [C#] //表示させるフォームのインスタンスを作成 Form1 f = new Form1(); //表示させるフォームを所有する this.AddOwnedForm(f); //または次のようにする //f.Owner = this; //フォームをモードレスで表示する f.Show(); また、Form1から所有を解除したいときは、次のようにRemoveOwnedFormメソッドを使用します。 [VB.NET] If Not Me.Owner Is Nothing Then 'フォームの所有を解除する Me.Owner.RemoveOwnedForm(Me) 'または次のようにする 'Me.Owner = Nothing End If [C#] if (this.Owner != null) { //フォームの所有を解除する this.Owner.RemoveOwnedForm(this); //または次のようにする //this.Owner = null; } なお、フォームの所有について「Form.AddOwnedForm メソッド」では、次のように書かれています。 |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|