Share via


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 設定的視窗屬性可能不會出現在 Managed 視窗 API 中。 例如,如果您在呼叫 方法之後 EnsureHandle ,使用原生MS_EX_TOPMOST旗標將視窗設定為最上層, Topmost 則屬性不保證會反映原生設定。

適用於