繁体   English   中英

您如何在VB.Net 3.0中获得控件的句柄?

[英]How Do You Get the Handle of a Control in VB.Net 3.0?

我需要将控件的句柄作为IntPtr传递给vb.Net 3.0中的屏幕捕获类。 尝试过此操作,但获得了无效的句柄异常。

Dim hwnd As IntPtr = Runtime.InteropServices.GCHandle.Alloc(CanvasMap)

任何帮助将不胜感激。

谢谢

没有VB.Net的3.0版本。 您是指VS2008附带的VB.Net版本吗? 如果是这样,那实际上就是VB.Net版本9.0。 从VB6切换时,他们没有重置版本号,只是不断增加。

这是WinForms项目吗? 如果是这样,您可以使用CanvasMap.Handle来访问控件。 请注意,此属性在实际显示之前是无效的,但是对于大多数情况而言都是如此。

编辑 OP提到这是WPF应用程序

我不确定您是否可以对WPF应用程序中的任何控件执行此操作。 可以使用WPF( link )中的WindowInteropHelper获取Window实例的句柄。 但这不适用于正常的Control实例。

为什么需要把手? 具有包含窗口的句柄是否可行?

ctrlSomeControl.Handle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM