How to: Manipular eventos usando Macros
Quando você cria uma nova macro, um módulo nomeado EnvironmentEvents é adicionado por padrão. Este módulo predefine muitos dos objetos de evento descritos na tabela a ser listada em Respondendo a eventos de automação para que você não precise fazê-lo. Se você deseja manipular um evento que não está no módulo EnvironmentEvents, você pode adicioná-lo. Para obter detalhes sobre como fazer isso, consulte Como: Manipular eventos de ambiente em Macros.
O procedimento a seguir demonstra como usar uma macro para manipular eventos relacionados a uma janela da ferramenta (neste caso, a lista de tarefas).
Observação |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição. Esses procedimentos foram desenvolvidos com o General Development Settings ativo. Para alterar as configurações, escolha importação e Exportar configurações sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações. |
Para manipular eventos relacionados a uma janela de ferramenta
Adicione o seguinte código para o módulo de EnvironmentEvents a IDE de Macros.
Execute a macro.
Como a macro adiciona itens para e remove os itens a Lista de tarefas, o Lista de tarefas eventos são manipulados.
Exemplo
O exemplo de macro a seguir demonstra como responder a um evento usando o Visual Studio eventos de automação modelo objetos. Este exemplo adiciona tarefas para e remove tarefas a partir de Lista de tarefas, responder aos eventos nos manipuladores de eventos.
' 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
Para responder a eventos no add-ins, inicializar o manipulador de eventos do OnConnectionMethod de evento. Por 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 TRANSLATION FROM VPE FOR CSHARP)