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