Partilhar via


Como: Criar um manipulador evento em uma macro para um tipo específico de projeto

O modelo Environmenteventos, que é incluído em cada projeto de macro, contém um número de pre-declared evento manipuladores.Esses evento manipuladores podem ser implementadas para responder a um número de ambiente evento sistema autônomo, sistema autônomo um fechamento de janela e assim por diante.Depois que a implementação for fornecida, esses manipuladores de eventos Geral extensibilidade automaticamente interceptam um evento especificado cada time ele ocorre no Visual Studio ambiente de desenvolvimento integrado (IDE). Para obter mais informações, consulte Como: Manipular eventos de ambiente em macros.

Você também pode adicionar seu próprio IDE evento manipuladores para o modelo Environmenteventos.Você declara uma variável de evento, fornece o código do manipulador de eventos para ele e adicione o OnMacrosRuntimeReset e OnStartupComplete manipuladores para automatizar a interceptação de eventos na Visual Studio IDE.

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

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 Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Para adicionar um VSLangProj manipulador de eventos à sua macro

  1. Na Macros IDE, sobre o Projeto menu, clicar Adicionar referência.

  2. No Adicionar referência caixa de diálogo, selecionar VSLangProj, clicar Adicionare, em seguida, clicar OK.

  3. Sobre o Modo de exibição de classe explorer painel de macros IDE, expandir MyMacros e clicar duas vezes em EnvironmentEvents para exibi-la no painel do editor de macro.

  4. Na parte superior do EnvironmentEvents módulo, adicione:

    Imports VSLangProj
    
  5. Inserir uma declaração do evento após a região oculta do EnvironmentEvents módulo rotulado "gerou 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 o nome de classe and Nome do método suspensa caixas no editor de código de macros IDE.

  6. Use o nome de classe lista suspensa para selecionar o DTEEvents, e Nome do método caixa suspensa de selecionarOnMacrosRuntimeReset e OnStartupComplete.

    Isso cria evento manipuladores para esses dois evento s.Esses evento manipuladores são necessárias para o seu ReferencesEvents manipulador automaticamente interceptar evento s toda vez que eles ocorrem na Visual Studio IDE.

  7. Modificar os manipuladores de eventos adicionando o EnvironmentEvents.refEvents csistema autônomot, sistema autônomo mostrado abaixo. Para interceptar um evento quando uma referência é adicionada a um Visual Basic ou Visual J# projeto, substitua a seqüência CSharpReferencesEvents com VBReferencesEvents ou VJSharpReferencesEvents , respectivamente.

    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. Por fim, cole o seguinte código no módulo EnvironmentEvents, ou selecionar refEvents o nome de classe caixa de suspensa e ReferenceAdded from a Nome do método caixa de seleção para criar um manipulador de eventos.Adicione a linha, MsgBox(pReference.Name & " was added to the project."), para o manipulador de eventos conforme 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 evento manipulador, crie um novo Visual C# projeto de qualquer tipo.

    Será exibida uma caixa de mensagem para cada referência será automaticamente adicionada ao modelo de projeto.

Exemplo

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

Observação:

Depois que esse manipulador de eventos é adicionado, ele é disparado toda time uma referência é adicionada ao tipo de projeto especificado.Se desejar 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

Como: Manipular eventos em uma macro

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

Como: Manipular eventos de automação (translation from VPE for Csharp Visual)

Outros recursos

Respondendo a eventos (Visual Basic e Visual translation from VPE for Csharp projetos)

Respondendo a eventos de automação