VB.NET 2010에서 WinForms UserControl을 기반으로하는 ActiveX 컨트롤을 구현했습니다. COM Interop을 통해 VBA UserForms에 사용됩니다. 모든 것은 괜찮습니다 - 단 한가지 만 빼고요. 입력 포커스가 ActiveX에서 사용자 정의 폼의 다른 VBA 네이티브 컨트롤 (예 : 명령 단추라고도 함)으로 이동하면이 항목을 감지 할 수 없습니다. 이러한 표준 WinForms 컨트롤 이벤트 (예 : Leave 또는 Validating)는이 경우 트리거되지 않습니다.COM Interop를 통해 MS Office VBA에서 호스팅되는 WinForms UserControl에 대한 LostFocus 이벤트 필요
어떻게 추적합니까 (WinAPI 트릭없이 "관리되는"방법을 사용하는 것이 더 좋음)?
우리 UserControl에는 버튼이나 텍스트 상자와 같은 다른 WinForms 컨트롤이 포함되어 있으므로 구성 요소 부분이 무엇이든 관계없이 ActiveX로 노출 된 전체 컨트롤에 대해 LostFocus 이벤트가 필요합니다.