簡體   English   中英

將特定的Word實例帶到VB的前面

[英]Bring specific Word instance to front 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM