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。
- 屬性
備註
EnsureHandle當您想要分隔視窗控制碼 (HWND) 建立時,請使用 方法,從受管理 Window 的實際顯示。 當您擁有可完成其工作的自動化用戶端,而不需要顯示視窗時,這會很有用。
如果尚未建立原生視窗,這個方法會建立原生視窗、設定 Handle 屬性,並傳回 HWND。 如果已經建立原生視窗,則會傳回現有原生視窗的控制碼。
如果以呼叫這個方法的結果建立原生視窗,就會 SourceInitialized 引發 事件。
呼叫 Handle 方法之後 EnsureHandle 查詢 屬性會傳回現有的視窗控制碼。 在呼叫 方法之後 Show ,視覺化樹狀結構不會附加至視窗。
EnsureHandle呼叫 方法一次以上並不會建立新的視窗控制碼。 EnsureHandle當方法的呼叫已經建立控制碼時呼叫 Show 方法,並不會建立新的視窗控制碼。 只有在呼叫 方法時沒有控制碼存在時, EnsureHandle 才會建立原生視窗。
透過 p/invoke 使用原生視窗 API 設定的視窗屬性可能不會出現在 Managed 視窗 API 中。 例如,如果您在呼叫 方法之後 EnsureHandle ,使用原生MS_EX_TOPMOST旗標將視窗設定為最上層, Topmost 則屬性不保證會反映原生設定。