AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler AutomationPropertyChangedEventHandler Delegate

정의

속성이 변경되었을 때 UI 자동화 공급자에서 발생하는 이벤트를 처리하기 위해 UI 자동화 클라이언트 애플리케이션에서 구현하는 메서드를 나타냅니다.Represents the method implemented by the UI Automation client application to handle the event raised by a UI Automation provider when a property has changed.

public delegate void AutomationPropertyChangedEventHandler(System::Object ^ sender, AutomationPropertyChangedEventArgs ^ e);
public delegate void AutomationPropertyChangedEventHandler(object sender, AutomationPropertyChangedEventArgs e);
type AutomationPropertyChangedEventHandler = delegate of obj * AutomationPropertyChangedEventArgs -> unit
Public Delegate Sub AutomationPropertyChangedEventHandler(sender As Object, e As AutomationPropertyChangedEventArgs)

매개 변수

sender
Object Object Object Object

이벤트를 발생시킨 개체입니다.The object that raised the event.

상속
AutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandlerAutomationPropertyChangedEventHandler

예제

다음 예제에서 변경 된 IsEnabled 구독 요소의 속성을 처리 하는 합니다.In the following example, changes in the IsEnabled property of subscribed elements are handled.


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);
    }
}

Dim propChangeHandler As AutomationPropertyChangedEventHandler

''' <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 Sub SubscribePropertyChange(ByVal element As AutomationElement)
    propChangeHandler = _
        New AutomationPropertyChangedEventHandler(AddressOf OnPropertyChange)
    Automation.AddAutomationPropertyChangedEventHandler(element, TreeScope.Element, _
        propChangeHandler, AutomationElement.IsEnabledProperty)

End Sub 'SubscribePropertyChange



''' <summary>
''' Handler for property changes.
''' </summary>
''' <param name="src">The source whose properties changed.</param>
''' <param name="e">Event arguments.</param>
Private Sub OnPropertyChange(ByVal src As Object, ByVal e As AutomationPropertyChangedEventArgs) 
    Dim sourceElement As AutomationElement = DirectCast(src, AutomationElement)
    If e.Property Is AutomationElement.IsEnabledProperty Then
        Dim enabled As Boolean = CBool(e.NewValue)
        ' TODO: Do something with the new value. 
        ' The element that raised the event can be identified by its runtime ID property.
    Else
    End If
 ' TODO: Handle other property-changed events.
End Sub 'OnPropertyChange


Public Sub UnsubscribePropertyChange(ByVal element As AutomationElement)
    If (propChangeHandler IsNot Nothing) Then
        Automation.RemoveAutomationPropertyChangedEventHandler(element, propChangeHandler)
    End If

End Sub 'UnsubscribePropertyChange

설명

합니다 AutomationElement 나타내는 sender 수 있는 모든 캐시 되지 속성 또는 애플리케이션이이 이벤트를 구독 하는지 여부에 따라 패턴을 CacheRequest 활성 상태 였던 합니다.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.

공급자 구현에 따라 속성 변경 이벤트를 반드시 나타내지는지 않습니다 속성 값이 다릅니다. 방금도 같은 값으로 속성이 설정 된 의미할 수도 있습니다.Depending on the provider implementation, a property-changed event does not necessarily signify that the property value is different; it might just mean that the property was set, even to the same value. 애플리케이션을 실제 변경에만 응답 하는 경우 것이 속성의 상태를 추적 해야 합니다.If your application needs to respond only to actual changes, it is your responsibility to track the state of the property.

확장 메서드

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.Gets an object that represents the method represented by the specified delegate.

적용 대상

추가 정보