Partilhar via


Registre-se em Eventos de Automação de Interface do Usuário

Este tópico mostra como se inscrever em eventos gerados pelo Provedores de automação interface do usuário.

Exemplo

O seguinte exemplo registra via código um manipulador de evento para um evento que é ativado quando um controle, como um botão, é invocado, e remove-o quando o formulário da aplicação fecha.O evento é identificado por um AutomationEvent passado como um parâmetro AddAutomationEventHandler.

AutomationElement ElementSubscribeButton;
AutomationEventHandler UIAeventHandler;





  SubscribeToInvoke(AutomationElement elementButton)
{
     (elementButton != )
    {
        Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent,
             elementButton, TreeScope.Element,
             UIAeventHandler =  AutomationEventHandler(OnUIAutomationEvent));
        ElementSubscribeButton = elementButton;
    }
}






  OnUIAutomationEvent(object src, AutomationEventArgs e)
{
    
    
    AutomationElement sourceElement;
    
    {
        sourceElement = src  AutomationElement;
    }
     (ElementNotAvailableException ex)
    {
        ;
    }
     (e.EventId == InvokePattern.InvokedEvent)
    {
        
    }
    
    {
        
    }
}

  ShutdownUIA()
{
     (UIAeventHandler != )
    {
        Automation.RemoveAutomationEventHandler(InvokePattern.InvokedEvent,
            ElementSubscribeButton, UIAeventHandler);
    }
}
 ElementSubscribeButton  AutomationElement
 UIAeventHandler  AutomationEventHandler




  SubscribeToInvoke( elementButton  AutomationElement)
     (elementButton IsNot ) 
        UIAeventHandler =  AutomationEventHandler( OnUIAutomationEvent)
        Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, elementButton, _
        TreeScope.Element, UIAeventHandler)
        ElementSubscribeButton = elementButton
     

  'SubscribeToInvoke





  OnUIAutomationEvent( src  Object,  e  AutomationEventArgs)


     sourceElement  AutomationElement
    
        sourceElement = DirectCast(src, AutomationElement)
     ex  ElementNotAvailableException
         
     
     e.EventId  InvokePattern.InvokedEvent 

    
     

    Console.WriteLine( & e.EventId.ProgrammaticName)
  'OnUIAutomationEvent

  ShutdownUIA()
     (UIAeventHandler IsNot ) 
        Automation.RemoveAutomationEventHandler(InvokePattern.InvokedEvent, ElementSubscribeButton, UIAeventHandler)
     

  'ShutdownUIA

O exemplo a seguir mostra como usar Para inscrever-se um evento que é gerado quando o foco muda.O manipulador de eventos é desregistrado em um método que pode ser chamado no fechamento da aplicação, ou quando uma notificação de evento de interface do usuário não é mais necessária.

AutomationFocusChangedEventHandler focusHandler = ;




  SubscribeToFocusChange()
{
    focusHandler =  AutomationFocusChangedEventHandler(OnFocusChange);
    Automation.AddAutomationFocusChangedEventHandler(focusHandler);
}






  OnFocusChange(object src, AutomationFocusChangedEventArgs e)
{
    
    
}




  UnsubscribeFocusChange()
{
     (focusHandler != )
    {
        Automation.RemoveAutomationFocusChangedEventHandler(focusHandler);
    }
}
 focusHandler  AutomationFocusChangedEventHandler = 



  SubscribeToFocusChange()
    focusHandler =  AutomationFocusChangedEventHandler( OnFocusChange)
    Automation.AddAutomationFocusChangedEventHandler(focusHandler)

  'SubscribeToFocusChange





  OnFocusChange( src  Object,  e  AutomationFocusChangedEventArgs)

  'OnFocusChange





  UnsubscribeFocusChange()
     (focusHandler IsNot ) 
        Automation.RemoveAutomationFocusChangedEventHandler(focusHandler)
     

  'UnsubscribeFocusChange

Consulte também

Conceitos

Visão geral sobre eventos de automação de interface do usuário

Referência

AddAutomationEventHandler

RemoveAllEventHandlers

RemoveAutomationEventHandler