次の方法で共有


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 プロパティはネイティブ設定を反映するとは限りません。

適用対象