我该如何在使用interop打开的Word文档上集中注意力?

6

我正在编写一个简单的Word Interop应用程序,它可以在后台打开一个.doc文件,更改书签内容,然后将其显示给用户:

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 - SLaks
1个回答

7
尝试使用App.Activate();代替Doc.Activate()

1
我没有替换Doc.Activate(),因为我需要它(在SetBookmarkValue扩展方法中使用的TypeText需要它)。我在App.Visible = true之后放置了App.Activate(),它按照我预期的方式工作。谢谢! - Larry
我编辑了帖子,添加了一个App.WindowState = WdWindowState.wdWindowStateNormal,我忘记了。没有这个,应用程序会被激活,但作为任务栏中的图标。 - Larry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接