我正在使用以下命名空间:Imports Microsoft.Office.Interop
我需要一个函数,它将一个特定的Word实例放在前面。最佳解决方案是
Public Sub toFront(ByVal wdObj as Word.Application, ByVal filePath as String)
'sends by filePath specified Word-Instance to Front
End Sub
我知道有Word.Application.Activate
,但它似乎并不总是有效,而且它只激活ActiveDocument。
我已经尝试了以下函数,其中wdObj是Word.Application
wdObj.Activate()
wdObj.Application.Documents(My.Settings.DocPath).Activate()
Interop中没有这样的函数。尝试使用WinApi代替:
void BringWindowToTop (Microsoft.Office.Interop.Word.Document doc) {
// To make it active document
doc.Activate();
// I'm not 100% sure, but I think MainWindowHandle gives
// a handle of currently active window of word
IntPtr hwnd = Process.GetCurrentProcess().MainWindowHandle;
BringWindowToTop(hwnd);
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool BringWindowToTop(IntPtr hWnd);