次の方法で共有


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

属性

注釈

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

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

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

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

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

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

適用対象