WindowInteropHelper.EnsureHandle メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
戻り値
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 プロパティにネイティブ設定が反映されるとは限りません。