Automation.RemoveAutomationEventHandler Method (AutomationEvent, AutomationElement, AutomationEventHandler)

 

Removes the specified UI Automation event handler.

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

public static void RemoveAutomationEventHandler(
	AutomationEvent eventId,
	AutomationElement element,
	AutomationEventHandler eventHandler
)

Parameters

eventId
Type: System.Windows.Automation.AutomationEvent

An event identifier.

element
Type: System.Windows.Automation.AutomationElement

The UI Automation element on which to remove the event handler.

eventHandler
Type: System.Windows.Automation.AutomationEventHandler

The handler method that was passed to AddAutomationEventHandler for the specified event identifier and UI Automation element.

The following example code shows an event handler being added and removed.

// Member variables.
AutomationElement ElementSubscribeButton;
AutomationEventHandler UIAeventHandler;

/// <summary>
/// Register an event handler for InvokedEvent on the specified element.
/// </summary>
/// <param name="elementButton">The automation element.</param>
public void SubscribeToInvoke(AutomationElement elementButton)
{
    if (elementButton != null)
    {
        Automation.AddAutomationEventHandler(InvokePattern.InvokedEvent,
             elementButton, TreeScope.Element,
             UIAeventHandler = new AutomationEventHandler(OnUIAutomationEvent));
        ElementSubscribeButton = elementButton;
    }
}

/// <summary>
/// AutomationEventHandler delegate.
/// </summary>
/// <param name="src">Object that raised the event.</param>
/// <param name="e">Event arguments.</param>
private void OnUIAutomationEvent(object src, AutomationEventArgs e)
{
    // Make sure the element still exists. Elements such as tooltips
    // can disappear before the event is processed.
    AutomationElement sourceElement;
    try
    {
        sourceElement = src as AutomationElement;
    }
    catch (ElementNotAvailableException)
    {
        return;
    }
    if (e.EventId == InvokePattern.InvokedEvent)
    {
        // TODO Add handling code.
    }
    else
    {
        // TODO Handle any other events that have been subscribed to.
    }
}

private void ShutdownUIA()
{
    if (UIAeventHandler != null)
    {
        Automation.RemoveAutomationEventHandler(InvokePattern.InvokedEvent,
            ElementSubscribeButton, UIAeventHandler);
    }
}

.NET Framework
Available since 3.0
Return to top
Show: