表单需要 IntPtr (VB.Net)

发布于 2024-07-19 08:58:14 字数 94 浏览 9 评论 0原文

我需要表单的 intPtr 。 Control.FromHandle(control) 为我提供了来自句柄的控件,但我需要相反的操作——从控件中获取句柄。 我该怎么做呢?

I need the intPtr for a form. Control.FromHandle(control) gives me the control from a handle, but I need the opposite--get the handle from a control. How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

潦草背影 2024-07-26 08:58:15

尝试

Dim handle As IntPtr = someControl.Handle

注意:这仅在创建控件的句柄后才起作用。 在创建控件和渲染到一定程度之间有一个时间窗口,在该时间窗口中可能返回 IntPtr.Zero

Try

Dim handle As IntPtr = someControl.Handle

Note: This will only work after the Handle for the control is created. There is a window of time in between when you create a control and when it is rendered to some degree where this may return IntPtr.Zero

厌倦 2024-07-26 08:58:15

注意:这仅在创建控件的句柄后才有效。 在创建控件和渲染到一定程度之间有一个时间窗口,此时可能会返回 IntPtr.Zero

我必须不同意 JaredPar 的观点:如果句柄是,则 Handle 属性的 get 访问器调用 CreateHandle尚未创建(您可以使用 Reflector 检查)。 意识到这一点很重要,因为在某些情况下可能会产生意想不到的后果

Note: This will only work after the Handle for the control is created. There is a window of time in between when you create a control and when it is rendered to some degree where this may return IntPtr.Zero

I have to disagree with JaredPar on this : the get accessor of the Handle property calls CreateHandle if the handle is not yet created (you can check with Reflector). It's important to be aware of that because in some cases it could have unexpected consequences

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文