/// <summary> A CodePane extension method that forces focus onto the CodePane. This patches a bug in VBE.Interop.</summary> public static void ForceFocus(this CodePane codePane) { codePane.Show(); var mainWindowHandle = codePane.VBE.MainWindow.Handle(); var childWindowFinder = new NativeWindowMethods.ChildWindowFinder(codePane.Window.Caption); NativeWindowMethods.EnumChildWindows(mainWindowHandle, childWindowFinder.EnumWindowsProcToChildWindowByCaption); var handle = childWindowFinder.ResultHandle; if (handle != IntPtr.Zero) { NativeWindowMethods.ActivateWindow(handle, mainWindowHandle); } }
/// <summary> A CodePane extension method that forces focus onto the CodePane. This patches a bug in VBE.Interop.</summary> public static void ForceFocus(this CodePane codePane) { codePane.Show(); var mainWindowHandle = codePane.VBE.MainWindow.Handle(); var childWindowFinder = new NativeWindowMethods.ChildWindowFinder(codePane.Window.Caption); NativeWindowMethods.EnumChildWindows(mainWindowHandle, childWindowFinder.EnumWindowsProcToChildWindowByCaption); var handle = childWindowFinder.ResultHandle; if (handle != IntPtr.Zero) { NativeWindowMethods.ActivateWindow(handle, mainWindowHandle); } }