簡體   English   中英

試圖從Microsoft教程中了解有關Word加載項的代碼的特定部分

[英]Trying to understand a particular part of code from microsoft tutorials regarding Word Add-Ins

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.ApplicationEvents4_Event)this.Application).NewDocument ...

我不明白的是this.Application之前的(Word.ApplicationEvents4_Event) 那是某種類似於事件的類型轉換嗎? 我不知道

文檔指出它是一個接口,因此代碼將this.Application強制轉換為該接口。

應用程序文檔對此進行了解釋:

這是從COM協類派生的.NET接口,托管代碼要求該COM互類具有與相應COM對象的互操作性。 使用此派生的接口訪問COM對象的所有方法,屬性和事件成員。 但是,如果 要使用 的方法或事件 在同一COM對象下共享相同的名稱,則強制轉換 為相應的主接口以調用該方法,並強制轉換 為最新的事件接口以連接到該事件。 有關COM對象的信息,請參考本主題。 有關COM對象的方法和屬性成員的信息,請參見_Application。 有關COM對象的事件成員的信息,請參見ApplicationEvents4_Event。

除了歐文的答案:

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

ApplicationEvents4_Event.NewDocument事件

在創建新文檔時發生。

因此,在打開文檔時(從您的第一個事件訂閱中)以及在創建新文檔時(從您的第二個事件訂閱中),將調用WorkWithDocument方法。

+ =只是訂閱這些事件,並告訴它們調用您的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM