Partilhar via


Como: Manipular eventos usando macros

Quando você criar uma nova macro, um módulo nomeado EnvironmentEvents é adicionado por padrão.No Visual Studio .NET 2002 e Visual Studio .NET 2003, barras de comandos foram mencionadas no componente Microsoft.Office.Core.Respondendo a eventos de automaçãoIn $$$$, isso BAR de comandos funcionalidade está disponível em um componente referenciado sistema autônomo Microsoft.VisualStudio.CommandBars.dll. Juntamente com a oferta de toda a funcionalidade de barra de comandos oferecida pelo Microsoft.Office.Core, os novos recursos do assembly Microsoft.VisualStudio.CommandBars atualiza para alguns métodos.Como: Manipular eventos de ambiente em macros

Essas atualizações exigem algumas pequenas alterações ao código de automação existente em $$$$.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio.

Observe que as alterações são necessárias somente se recompilar seu código de suplemento ou executar uma macro que usa os tipos antigos.

  1. Add the following code to the EnvironmentEvents module in the Macros IDE.

  2. atualização o código do tipo de resolução.

    As the macro adds items to and removes items from the Task List, the Task List events are handled.

Exemplo

Atualize qualquer código que chama DTE.CommandBars, Command.AddControl, Commands.RemoveCommandBar ou Commands.AddCommandBar.Visual StudioThis example adds tasks to and removes tasks from the Task List, responding to the events in the event handlers.

' Macro code.
Public Module EnvironmentEvents

   Public Sub TaskListEvents_TaskAdded(ByVal TaskItem As _
   EnvDTE.TaskItem) Handles TaskListEvents.TaskAdded
      MsgBox("A task named '" & TaskItem.Description & "' was added _
      to the Task List.")
      ' Put other code here that you want to execute when this 
      ' event occurs.
   End Sub

   Public Sub TaskListEvents_TaskRemoved(ByVal TaskItem As _
   EnvDTE.TaskItem) Handles TaskListEvents.TaskRemoved
      MsgBox("A task named '" & TaskItem.Description & "' was _
      removed from the Task List.")
      ' Put other code here that you want to execute when this 
      ' event occurs.
   End Sub
End Module

Sub EventsExample()
    ' Add items to and remove items from the Task List.
    Dim TL As TaskList = dte.ToolWindows.TaskList
    Dim TLItem As taskitem

    ' Add a couple of tasks to the Task List.
    TLItem = TL.TaskItems.Add(" ", " ", "Test task 1.", _
    vsTaskPriority.vsTaskPriorityHigh, vsTaskIcon.vsTaskIconUser, _
    True, , 10, , )
    TLItem = TL.TaskItems.Add(" ", " ", "Test task 2.", _
    vsTaskPriority.vsTaskPriorityLow, vsTaskIcon.vsTaskIconComment, _
    , , 20, , )

    ' List the total number of task list items after adding the new 
    ' task items.
    MsgBox("Task Item 1 description: " & _
    TL.TaskItems.Item(2).Description)
    MsgBox("Total number of task items: " & TL.TaskItems.Count)

    ' Remove the second task item. The items list in reverse numeric 
    ' order.
    MsgBox("Deleting the second task item")
    TL.TaskItems.Item(1).Delete()
    MsgBox("Total number of task items: " & TL.TaskItems.Count)
End Sub

Atrasado-limite propriedadesOnConnectionMethodPor exemplo:

Public Class Class1
   Implements IDTExtensibility2
   Dim objEventsClass As EventsClass

   Public Sub OnConnection(ByVal Application As Object, ByVal _
   ConnectMode As EnvDTE.ext_ConnectMode, ByVal AddInInst As _
   Object, ByRef custom() As Object) Implements _
   EnvDTE.IDTExtensibility2.OnConnection
      objEventsClass = New EventsClass()
      objEventsClass.TaskListEvents = _
      _applicationObj.Events.TaskListEvents
   End Sub
End Class

Public Class EventsClass
   Public WithEvents TaskListEvents As EnvDTE.TaskListEvents

   Private Sub TaskListEvents_TaskAdded(ByVal TaskItem As _
   EnvDTE.TaskItem) Handles TaskListEvents.TaskAdded
      MsgBox("A task named '" & TaskItem.Description & "' was added _
      to the Task List.")
      ' Put any other code here that you want to execute when this 
      ' event occurs.
   End Sub
End Class

Consulte também

Outros recursos

Respondendo a eventos (Visual Basic e projetos do Visual C#)