Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Automation.AddAutomationPropertyChangedEventHandler Method

Registers a method that will handle property-changed events.

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

public static void AddAutomationPropertyChangedEventHandler (
	AutomationElement element,
	TreeScope scope,
	AutomationPropertyChangedEventHandler eventHandler,
	params AutomationProperty[] properties
)
public static void AddAutomationPropertyChangedEventHandler (
	AutomationElement element, 
	TreeScope scope, 
	AutomationPropertyChangedEventHandler eventHandler, 
	AutomationProperty[] properties
)
public static function AddAutomationPropertyChangedEventHandler (
	element : AutomationElement, 
	scope : TreeScope, 
	eventHandler : AutomationPropertyChangedEventHandler, 
	... properties : AutomationProperty[]
)
Not applicable.

Parameters

element

The UI Automation element with which to associate the event handler.

scope

The scope of events to be handled; that is, whether they are on the element itself, or on its ancestors and children.

eventHandler

The method to call when the event occurs.

properties

The UI Automation properties of interest.

The user interface (UI) item specified by the supplied UI Automation element might not support the properties specified by the properties parameter.

eventHandler can be an instance of the method, or a reference to the method (AddressOf in Visual Basic).

The following example code adds an event handler that listens for a change in the enabled state of a specified element.


AutomationPropertyChangedEventHandler propChangeHandler;
/// <summary>
/// Adds a handler for property-changed event; in particular, a change in the enabled state.
/// </summary>
/// <param name="element">The UI Automation element whose state is being monitored.</param>
public void SubscribePropertyChange(AutomationElement element)
{
    Automation.AddAutomationPropertyChangedEventHandler(element, 
        TreeScope.Element, 
        propChangeHandler = new AutomationPropertyChangedEventHandler(OnPropertyChange),
        AutomationElement.IsEnabledProperty);

}

/// <summary>
/// Handler for property changes.
/// </summary>
/// <param name="src">The source whose properties changed.</param>
/// <param name="e">Event arguments.</param>
private void OnPropertyChange(object src, AutomationPropertyChangedEventArgs e)
{
    AutomationElement sourceElement = src as AutomationElement;
    if (e.Property == AutomationElement.IsEnabledProperty)
    {
        bool enabled = (bool)e.NewValue;
        // TODO: Do something with the new value. 
        // The element that raised the event can be identified by its runtime ID property.
    }
    else
    { 
        // TODO: Handle other property-changed events.
    }
}

public void UnsubscribePropertyChange(AutomationElement element)
{
    if (propChangeHandler != null)
    {
        Automation.RemoveAutomationPropertyChangedEventHandler(element, propChangeHandler);
    }
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.