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 才会创建本机窗口。

使用本机窗口 API 通过 p/invoke 设置的窗口属性可能不会显示在托管窗口 API 中。 例如,如果在调用 方法后 EnsureHandle 使用本机MS_EX_TOPMOST标志将窗口设置为最顶部, Topmost 则不保证 属性反映本机设置。

适用于