Compartilhar via


How to: Criar um manipulador de eventos em uma Macro para um Tipo específico de projeto

O modelo de EnvironmentEvents, que está incluído em cada projeto de macro, contém um número de manipuladores de eventos pre-declared. Esses manipuladores de eventos podem ser implementadas para responder a um número de eventos do ambiente, como um fechamento da janela e assim por diante. Depois que a implementação é fornecida, esses manipuladores de eventos de extensibilidade geral automaticamente interceptam um evento especificado toda vez que ele ocorre Visual Studio o ambiente de desenvolvimento integrado (IDE). Para obter mais informações, consulte Como: Manipular eventos de ambiente em Macros.

Você também pode adicionar seus próprios manipuladores de eventos do IDE para o modelo de EnvironmentEvents. Declarar uma variável de evento, forneça o código de manipulador de eventos para ele e adicionar o OnMacrosRuntimeReset e OnStartupComplete manipuladores para automatizar a interceptação de eventos na Visual Studio IDE.

Este exemplo adiciona um ReferencesEvents o manipulador de eventos que é acionado quando uma referência é adicionada a uma Visual C# ou Visual Basic project.

ObservaçãoObservaçã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 Import and Export Settings sobre o Ferramentas menu. Para obter mais informações, consulte Trabalhando com configurações.

Para adicionar um manipulador de eventos de VSLangProj à sua macro

  1. No IDE de Macros, sobre o projeto menu, clique em Adicionar referência de.

  2. No Add Reference caixa de diálogo, selecione VSLangProj, clique em Adde em seguida, clique em OK.

  3. Sobre o Class View painel do explorer do IDE de Macros, expanda MyMacros e clique duas vezes em EnvironmentEvents para exibi-la no painel do editor de macro.

  4. No topo da EnvironmentEvents module, adicione:

    Imports VSLangProj
    
  5. Insira uma declaração do evento após a região oculta da EnvironmentEvents módulo rotulado "gerado automaticamente o código, não modifique":

    <System.ContextStaticAttribute()> Public WithEvents refEvents As VSLangProj.ReferencesEvents
    

    Essa declaração adiciona ReferencesEvents e seus métodos para a Nome da classe e Nome do método caixas de lista suspensa no editor de código de Macros IDE.

  6. Use o Nome da classe caixa drop-down para selecionar o DTEEvents, e Nome do método caixa drop-down para selecionar OnMacrosRuntimeReset e OnStartupComplete.

    Isso cria manipuladores de eventos para esses dois eventos. Esses manipuladores de eventos são necessários para seu ReferencesEvents manipulador automaticamente interceptar eventos sempre que eles ocorram Visual Studio IDE.

  7. Modificar os manipuladores de eventos adicionando o EnvironmentEvents.refEvents converter, conforme mostrado abaixo. Para interceptar um evento quando uma referência é adicionada a uma Visual Basic de projeto, substitua a seqüência CSharpReferencesEvents com VBReferencesEvents.

    Public Sub DTEEvents_OnMacrosRuntimeReset() Handles_
     DTEEvents.OnMacrosRuntimeReset
            EnvironmentEvents.refEvents_
            =CType(DTE.Events.GetObject("CSharpReferencesEvents")_
            , ReferencesEvents)
    End Sub
    

    e

    Private Sub DTEEvents_OnStartupComplete() Handles_
     DTEEvents.OnStartupComplete
            EnvironmentEvents.refEvents_
            = CType(DTE.Events.GetObject("CSharpReferencesEvents")_
            , ReferencesEvents)
    End Sub
    
  8. Finalmente, cole o seguinte código no módulo EnvironmentEvents ou selecione refEvents da Nome da classe caixa drop-down e ReferenceAdded da Nome do método caixa drop-down para criar um manipulador de eventos. Adicione a linha MsgBox(pReference.Name & " was added to the project."), para o manipulador de eventos, como mostrado abaixo.

    Public Sub refEvents_ReferenceAdded(ByVal pReference As VSLangProj.Reference) Handles refEvents.ReferenceAdded
            MsgBox(pReference.Name & " was added to the project.")
    End Sub
    
  9. Para testar seu manipulador de eventos, crie uma nova Visual C# o projeto de qualquer tipo.

    Aparece uma caixa de mensagem para cada referência que é automaticamente adicionada ao modelo de projeto.

Exemplo

Este código mostra o exemplo completo. Você pode colar o código abaixo no módulo EnvironmentEvents do seu projeto de macros.

ObservaçãoObservação

Depois que o manipulador de eventos é adicionado, é acionado sempre que uma referência é adicionada ao tipo de projeto especificado. Se você não deseja ser notificado sempre que uma referência é adicionada, comente esse código.

<System.ContextStaticAttribute()> Public WithEvents refEvents As VSLangProj.ReferencesEvents
Public Sub DTEEvents_OnMacrosRuntimeReset() Handles_
 DTEEvents.OnMacrosRuntimeReset
        EnvironmentEvents.refEvents= _
        CType(DTE.Events.GetObject("CSharpReferencesEvents")_
        , VSLangProj.ReferencesEvents)
End Sub
Private Sub DTEEvents_OnStartupComplete() Handles_
 DTEEvents.OnStartupComplete
        EnvironmentEvents.refEvents = _
        CType(DTE.Events.GetObject("CSharpReferencesEvents")_
        , VSLangProj.ReferencesEvents)
End Sub
Public Sub refEvents_ReferenceAdded(ByVal pReference As VSLangProj.Reference) Handles refEvents.ReferenceAdded
        MsgBox(pReference.Name & " was added to the project.")
End Sub

Consulte também

Tarefas

How to: Manipular eventos em uma Macro

How to: Manipular eventos de automação (Visual Basic)

How to: Manipular eventos de automação (Visual C#)

Outros recursos

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

Respondendo a eventos de automação