WindowInteropHelper.EnsureHandle メソッド

定義

ウィンドウの HWND がまだ作成されていない場合は HWND を作成します。

public:
 IntPtr EnsureHandle();
[System.Security.SecurityCritical]
public IntPtr EnsureHandle ();
public IntPtr EnsureHandle ();
[<System.Security.SecurityCritical>]
member this.EnsureHandle : unit -> nativeint
member this.EnsureHandle : unit -> nativeint
Public Function EnsureHandle () As IntPtr

戻り値

IntPtr

nativeint

HWND を表す IntPtr

属性

注釈

EnsureHandleウィンドウ ハンドル (HWND) の作成をマネージドWindowの実際の表示から分離する場合は、このメソッドを使用します。 これは、ウィンドウを表示せずにタスクを実行できるオートメーション クライアントがある場合に便利です。

ネイティブ ウィンドウがまだ作成されていない場合、このメソッドはネイティブ ウィンドウを作成し、プロパティを Handle 設定し、HWND を返します。 ネイティブ ウィンドウが既に作成されている場合は、既存のネイティブ ウィンドウのハンドルが返されます。

このメソッドを呼び出した結果としてネイティブ ウィンドウが作成された場合、イベントが発生します SourceInitialized

メソッドの呼び出し後に Handle プロパティに対してクエリを EnsureHandle 実行すると、既存のウィンドウ ハンドルが返されます。 メソッドが呼び出されるまで、ビジュアル ツリーはウィンドウに Show アタッチされません。

メソッドを EnsureHandle 複数回呼び出しても、新しいウィンドウ ハンドルは作成されません。 メソッドの EnsureHandle 呼び出しによってハンドルが既に作成されている場合にメソッドを Show 呼び出しても、新しいウィンドウ ハンドルは作成されません。 ネイティブ ウィンドウは、メソッドが呼び出されたときにハンドルが存在しない場合 EnsureHandle にのみ作成されます。

p/invoke を使用してネイティブ ウィンドウ API を使用して設定されたウィンドウ プロパティは、マネージド ウィンドウ API に表示されない場合があります。 たとえば、メソッドの呼び出し後にネイティブ MS_EX_TOPMOST フラグを使用してウィンドウを EnsureHandle 最上位に設定した場合、 Topmost このプロパティはネイティブ設定を反映するとは限りません。

適用対象