vb.Net 3.0의 화면 캡처 클래스에 전달할 IntPtr로 컨트롤 핸들을 가져와야합니다. 이것을 시도했지만 유효하지 않은 핸들 예외가 발생했습니다.VB.Net 3.0에서 컨트롤 핸들을 가져 오는 방법은 무엇입니까?
Dim hwnd As IntPtr = Runtime.InteropServices.GCHandle.Alloc(CanvasMap)
도움을 주시면 감사하겠습니다.
감사합니다.
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을 사용하여 컨트롤에 액세스 할 수 있습니다. 이 속성은 실제로 표시 될 때까지 유효하지 않지만 대부분의 시나리오에서 마찬가지입니다.
편집 영업 이익이 내가 당신이 WPF 응용 프로그램에서 그냥 제어를 위해이 작업을 수행 할 수 있습니다 모르겠어요 WPF 응용 프로그램
입니다 언급했다. WPF (link)의 WindowInteropHelper를 사용하여 Window 인스턴스의 핸들을 가져올 수 있습니다. 그러나 이것은 정상적인 Control 인스턴스에서는 작동하지 않습니다.
왜 핸들이 필요합니까? 창을 포함하는 핸들을 가지고 작동합니까?
ctrlSomeControl.Handle
?
CanvasMap.Handle을 시도 할 때이 오류가 발생합니다. 'handle'은 (는) 'System.Windows.Controls.Canvas'의 멤버가 아닙니다. – user38349
죄송합니다, 이것은 WPF 앱입니다. – user38349
그는 .NET 3.0과 함께 VB.NET을 의미한다고 생각합니다. –