2016-01-11 35 views
0

我使用下面的命名空间:Imports Microsoft.Office.Interop带上特定的Word实例前VB

我需要一个功能,带来特定的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() 

回答

0

没有这样的互操作功能。尝试使用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);