2011-06-30 50 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