2011-06-30 70 views
4

我寫一個簡單的詞互操作應用程序,它在後臺打開.doc文件,修改書籤內容,然後使它對用戶可見:如何關注通過互操作打開的Word文檔?

var App = new Microsoft.Office.Interop.Word.Application(); 

var ParTemplate = (object)Template; 
var ParVisible = (object)false; 

var Doc = App.Documents.Open(
    FileName: ref ParTemplate, // Template 
    ConfirmConversions: ref missing, 
    ReadOnly: ref missing, 
    ... 

Doc.Activate(); 

Doc.SetBookmarkValue("IssueNumber", TheIssue.IssueNo); 
Doc.SetBookmarkValue("Title", TheIssue.Title); 
... 

App.Visible = true; 
App.WindowState = WdWindowState.wdWindowStateNormal; 

其實,Word應用程序出現在任務托盤中,用戶必須手動切換到它。

什麼是讓我的應用程序專注於打開的Word文檔的最佳方式?

+1

C#4支持可選參數,因此您不需要'ref missing's。 – SLaks

回答

5

試試這個App.Activate();而不是Doc.Activate()

+1

我沒有替換Doc.Activate(),因爲我需要它(這是我在SetBookmarkValue擴展方法中使用的TypeText所要求的)。我確實在App.Visible = true之後放置了App.Activate(),它按我期望的方式工作。謝謝 ! – Larry

+0

我編輯的帖子添加一個App.WindowState = WdWindowState.wdWindowStateNormal我忘了。如果沒有這個,應用程序被激活,但是作爲任務欄中的圖標。 – Larry