我們在VB.NET 2010中基於WinForms UserControl實現了一個ActiveX控件。它通過COM Interop在VBA UserForms上使用。一切正常 - 除了一件事。當輸入焦點從ActiveX移動到用戶窗體上的另一個VBA本地控件(如說命令按鈕)時,我們無法檢測到此事。在這種情況下,不會觸發像Leave或Validating這樣的標準WinForms控件事件。需要通過COM Interop在MS Office VBA中託管的WinForms UserControl的LostFocus事件
如何跟蹤它(更好地使用「託管」方式,沒有WinAPI技巧)?
請注意,我們的UserControl包含其他WinForms控件,如按鈕或文本框,所以我們需要一個LostFocus事件作爲ActiveX公開的整個控件,無論選擇哪個組成部分。