HOW TO:處理巨集中的事件

在整合式開發環境 (IDE) 中有兩種類型的事件,一種是適用於所有專案的事件,另一種是只適用於特定專案類型的事件。 適用於所有專案類型的事件範例包括加入新檔案、選取功能表選項,以及關閉視窗; 只適用於特定專案類型的事件範例則包括在專案中加入參考或 Web 參考。

這項工作假設您已經知道如何存取巨集開發環境和建立巨集專案。 如需詳細資訊,請參閱使用巨集自動執行重複的動作

在這個範例中,會示範如何回應適用於所有 Visual Studio 專案的視窗事件。 如需適用於所有語言之事件的詳細資訊,請參閱回應 Automation 事件

注意事項注意事項

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 使用 [一般開發設定] 開發了這些程序。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱 使用設定

若要擷取語言中性事件

  1. 在 [MyMacros] 中,建立一個新的巨集模組並將它命名為 CaptureEvents。

  2. 當您建立新的巨集時,會預設加入一個名為 EnvironmentEvents 的模組。 這個模組會定義許多在回應 Automation 事件所列的表格中描述的事件物件 (Event Object)。 在 EnvironmentEvents 模組中,已經依照下列程式碼所示宣告了模組層級的 WindowEvents 變數。

    Public WithEvents windowEvents As EnvDTE.WindowEvents
    
  3. 在 EnvironmentEvents 模組中,使用 [巨集 IDE] 編輯器中的 [類別名稱] 和 [方法名稱] 下拉式方塊,建立變數的 WindowClosing 事件處理常式,或是剪貼下列程式碼。

    Public Sub windowEvents_WindowClosing( _
    ByVal Window As EnvDTE.Window) Handles windowEvents.WindowClosing
       MsgBox("You are closing the window.")
    End Sub
    
  4. 返回開發環境並關閉使用中視窗。

    訊息方塊隨即出現。 每次您關閉使用中視窗時,都會顯示這個訊息。 如果您不希望每次關閉使用中視窗時都收到這個訊息,則請刪除此事件處理常式。

將參考加入至專案

在這個範例中,會示範將參考加入至專案時要如何回應。 語言特定事件會包含在 Events 屬性中。 這個範例會提供特定專案繫結至 ReferencesEvents 的應用方式。 您也可以藉由在 EnvironmentEvents 模組中定義處理常式,來提供全域層級的事件處理常式。 如需詳細資訊,請參閱 HOW TO:在特定的專案類型的巨集中建立事件處理常式。若要執行這個範例,必須在 Visual Studio IDE 中開啟 Visual Basic 或 Visual C# 專案。

若要擷取 Visual Basic 或 Visual C# 事件

  1. 建立一個名為 CaptureRefEvents 的新巨集模組。

  2. 在巨集整合式開發環境 (IDE) 中,從 [專案] 功能表中選取 [加入參考],加入 VSLangProj 的參考。 在 [加入參考] 對話方塊中,選取 [VSLangProj],按一下 [確定],然後再按 [加入]。

  3. 在 EnvironmentEvents 模組中,展開 [自動產生的程式碼,不修改] 摺疊區段,並加入模組層級的 ReferencesEvents 變數。

    Dim WithEvents refEvents As VSLangProj.ReferencesEvents
    
  4. 使用編輯器中的 [類別名稱] 和 [方法名稱] 下拉式方塊,建立變數的事件處理常式。

    Public Sub refEvents_ReferenceAdded(ByVal pReference As _
    VSLangProj.Reference) Handles refEvents.ReferenceAdded
       MsgBox(pReference.Name & " was added to the project.")
    End Sub
    
  5. 在 [巨集總管] 中,以滑鼠右鍵按一下 CaptureRefEvents 模組, 從下拉式功能表 (Drop-Down Menu) 中選取 [新增巨集]。 剪貼下列程式碼,初始化 refEvents 變數。

    Public Sub ConnectRefEvents()
       Dim proj As VSLangProj.VSProject
       proj = CType(DTE.Solution.Projects.Item(1).Object, _
          VSLangProj.VSProject)
       refEvents = proj.Events.ReferencesEvents
    End Sub
    
  6. 儲存 ConnectRefEvents 巨集。

  7. 在 Visual Studio IDE 中,開啟 Visual Basic 或 Visual C# 專案。

  8. 執行 ConnectRefEvents 巨集。

  9. 在 Visual Studio IDE 中加入專案的參考。

    內容為「<Reference name> 已加入至專案」的訊息方塊隨即顯示。

請參閱

參考

Events

Events2