2011-06-30 7 views
4

私は、バックグラウンドでの.docファイルを開く簡単なWordの相互運用アプリケーションを書いています、ブックマークの内容を変更し、ユーザーにそれが見えるように:interopで開いたばかりの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'は必要ありません。 – SLaks

答えて

5

App.Activate();の代わりにDoc.Activate()の代わりに試してみてください。

+1

私はDoc.Activate()を置き換えませんでした(SetBookmarkValue拡張メソッドで使用しているTypeTextで必要です)。私はApp.Visible = trueの後にApp.Activate()を置いて、期待どおりの動作をしました。ありがとう! – Larry

+0

投稿を編集してApp.WindowState = WdWindowState.wdWindowStateNormalを追加しました。忘れました。これがなければ、アプリケーションはアクティブになりますが、タスクバーのアイコンとして表示されます。 – Larry

関連する問題