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
Na Macros IDE, sobre o Projeto menu, clicar Adicionar referência.
No Adicionar referência caixa de diálogo, selecionar VSLangProj, clicar Adicionare, em seguida, clicar OK.
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.
Na parte superior do EnvironmentEvents módulo, adicione:
Imports VSLangProj
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.
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.
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
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
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)