2016-01-11 42 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);