Export (0) Print
Expand All
Expand Minimize

AutomationEventHandler Delegate

Represents the method implemented by the UI Automation client application to handle an event raised by a UI Automation provider.

Namespace:  System.Windows.Automation
Assembly:  UIAutomationTypes (in UIAutomationTypes.dll)

'Declaration
Public Delegate Sub AutomationEventHandler ( _
	sender As Object, _
	e As AutomationEventArgs _
)

Parameters

sender
Type: System.Object

The object that raised the event.

e
Type: System.Windows.Automation.AutomationEventArgs

Information about the event.

Use an AutomationEventHandler delegate to specify the method that is called by a client to handle UI Automation events.

The AutomationElement represented by sender might not have any cached properties or patterns, depending on whether the application subscribed to this event while a CacheRequest was active.

The following example shows how to subscribe to and handle an event.

' Member variables. 
Private ElementSubscribeButton As AutomationElement
Private UIAeventHandler As AutomationEventHandler


''' <summary> 
''' Register an event handler for InvokedEvent on the specified element. 
''' </summary> 
''' <param name="elementButton">The automation element.</param> 
Public Sub SubscribeToInvoke(ByVal elementButton As AutomationElement)
    If (elementButton IsNot Nothing) Then
        UIAeventHandler = New AutomationEventHandler(AddressOf OnUIAutomationEvent)
        Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent, elementButton, _
        TreeScope.Element, UIAeventHandler)
        ElementSubscribeButton = elementButton
    End If 

End Sub 'SubscribeToInvoke


''' <summary> 
''' AutomationEventHandler delegate. 
''' </summary> 
''' <param name="src">Object that raised the event.</param> 
''' <param name="e">Event arguments.</param> 
Private Sub OnUIAutomationEvent(ByVal src As Object, ByVal e As AutomationEventArgs)
    ' Make sure the element still exists. Elements such as tooltips can disappear 
    ' before the event is processed. 
    Dim sourceElement As AutomationElement
    Try
        sourceElement = DirectCast(src, AutomationElement)
    Catch ex As ElementNotAvailableException
        Exit Sub 
    End Try 
    If e.EventId Is InvokePattern.InvokedEvent Then 
        ' TODO Add handling code. 
    Else 
    End If 
    ' TODO Handle any other events that have been subscribed to.
    Console.WriteLine("Event: " & e.EventId.ProgrammaticName)
End Sub 'OnUIAutomationEvent

Private Sub ShutdownUIA()
    If (UIAeventHandler IsNot Nothing) Then
        Automation.RemoveAutomationEventHandler(InvokePattern.InvokedEvent, ElementSubscribeButton, UIAeventHandler)
    End If 

End Sub 'ShutdownUIA

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft