将特定的Word实例放到VB前面



我正在使用以下命名空间: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);

最新更新