次の方法で共有


Window.Show メソッド

定義

ウィンドウを開き、新しく開いたウィンドウが閉じるのを待たずに戻ります。

public:
 void Show();
public void Show();
member this.Show : unit -> unit
Public Sub Show ()

例外

Show() は、閉じているウィンドウ (Closing) または閉じられているウィンドウ (Closed) で呼び出されます。

次の例では、モードレス ウィンドウを開く方法を示します。

// Initialize window
Window window = new Window();

// Show window modelessly
// NOTE: Returns without waiting for window to close
window.Show();
' Initialize window
Dim window As New Window()

' Show window modelessly
' NOTE: Returns without waiting for window to close
window.Show()

注釈

Window クラスがインスタンス化されると、既定では表示されません。 Show はウィンドウを表示し、ウィンドウが閉じられるのを待たずにすぐに戻ります。 そのため、開いているウィンドウでは、ユーザーがアプリケーション内の他のウィンドウと対話できなくなります。 この種類のウィンドウは、 モードレス ウィンドウと呼ばれます。 モードレス ウィンドウの一般的な例としては、プロパティ ウィンドウ、ツールボックス、パレットがあります。 ユーザーが特定のウィンドウと対話するように制限するには、 ShowDialogを呼び出してウィンドウを開く必要があります。

Showを呼び出して開いたウィンドウは、そのウィンドウを開いたウィンドウとのリレーションシップを自動的に持つことはありません。具体的には、開いているウィンドウは、開いているウィンドウを認識しません。 このリレーションシップは、 Owner プロパティを使用して確立し、 OwnedWindows プロパティを使用して管理できます。

Showを呼び出すと、Window オブジェクトVisibilityプロパティをVisibleに設定するのと同じ最終結果が得られます。 ただし、タイミングの観点からは、2 つの間に違いがあります。

Showの呼び出しは、子ウィンドウでLoaded イベントが発生した後にのみ返される同期操作です。

Window w = new Window();
w.Loaded += delegate { System.Console.WriteLine("This is written first."); };
w.Show();
System.Console.WriteLine("This is written last.");
Dim w As New Window()
AddHandler w.Loaded, Sub() System.Console.WriteLine("This is written first.")
w.Show()
System.Console.WriteLine("This is written last.")

ただし、 Visibilityの設定は、すぐに返される非同期操作です。

Window w2 = new Window();
w2.Loaded += delegate { System.Console.WriteLine("This is written last."); };
w2.Visibility = Visibility.Visible;
System.Console.WriteLine("This is written first.");
Dim w2 As New Window()
AddHandler w2.Loaded, Sub() System.Console.WriteLine("This is written last.")
w2.Visibility = Visibility.Visible
System.Console.WriteLine("This is written first.")

Visibility設定すると、Visibilityを設定する前に登録したウィンドウ イベントは、Visibility設定したメソッドの実行が完了するまで発生しない可能性があります。

適用対象

こちらもご覧ください