2017-08-09 2 views
1
private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    this.Application.DocumentOpen += 
      new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument); 

    ((Word.ApplicationEvents4_Event)this.Application).NewDocument += 
      new > Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument); 
} 

private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc) 
{ 
    try 
    { 
      Word.Range rng = Doc.Range(0, 0); 
      rng.Text = "New Text"; 
      rng.Select(); 
    } 
    catch (Exception ex) 
    { 
      // Handle exception if for some reason the document is not available. 
    } 
} 

これは完全なコードです。アドインを開始するはずのことを理解してから、ドキュメントが使用可能かどうかを確認してください。私は悩みを理解している部分はこれです:Wordアドインに関するマイクロソフトのチュートリアルの特定の部分を理解しようとしています

((Word.ApplicationEvents4_Event)this.Application).NewDocument ... 

は、私が理解していないが、右this.Application(Word.ApplicationEvents4_Event)です。それはある種のイベントのような型キャストですか?私は分かりません。

答えて

1

The documentation statesそれはインターフェイスなので、コードはそのインターフェイスにキャストthis.Applicationです。 Applicationため

ドキュメントは、これを説明する:

これは、対応するCOM オブジェクトとの相互運用のためにマネージコードで を必要とされるCOMコクラスから派生した.NETインターフェイスです。この派生したインターフェイスを使用して、COMオブジェクトのすべてのメソッド、プロパティ、および イベントメンバーにアクセスします。 しかし、メソッドまたはイベントあなた 最新のイベントインターフェイスにする方法、およびキャストを呼び出すために 対応するプライマリインターフェイスにキャスト同じCOMオブジェクト、下の株式に同じ名前を使用したい場合イベントに接続します。 COMオブジェクトの詳細については、 トピックを参照してください。 メソッドおよびCOMオブジェクトのプロパティメンバーについては、_Applicationを参照してください。 COMオブジェクトのイベントメンバーについての については、 ApplicationEvents4_Eventを参照してください。オーウェンの答えに

+1

ありがとうございます。 – Qya

1

追加:新しい文書が作成されたときに

https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.applicationevents4_event.newdocument(v=office.14).aspx

ApplicationEvents4_Event.NewDocumentイベント

に発生します。

WorkWithDocumentメソッドは、ドキュメントを開いたとき(最初のイベントサブスクリプションから)と新しいドキュメントを作成したとき(2番目のイベントサブスクリプションから)に呼び出されます。

+ =は、これらのイベントに登録して、あなたのメソッドを呼び出すように指示します。

関連する問題