AutomationPropertyChangedEventHandler Delegera
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar den metod som implementeras av UI Automation-klientprogrammet för att hantera händelsen som genereras av en UI Automation-provider när en egenskap har ändrats.
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)
Parametrar
- sender
- Object
Objektet som skapade händelsen.
Information om händelsen.
Exempel
I följande exempel hanteras ändringar i IsEnabled egenskapen för prenumerationselement.
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
''' <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
Public Sub UnsubscribePropertyChange(ByVal element As AutomationElement)
If (propChangeHandler IsNot Nothing) Then
Automation.RemoveAutomationPropertyChangedEventHandler(element, propChangeHandler)
End If
End Sub
Kommentarer
De AutomationElement som representeras av sender kanske inte har några cachelagrade egenskaper eller mönster, beroende på om programmet prenumererade på den här händelsen när ett CacheRequest var aktivt.
Beroende på providerimplementeringen betyder en händelse som ändrats av egenskapen inte nödvändigtvis att egenskapsvärdet är annorlunda. Det kan bara betyda att egenskapen har angetts, även till samma värde. Om ditt program bara behöver svara på faktiska ändringar är det ditt ansvar att spåra egenskapens tillstånd.
Tilläggsmetoder
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet. |
Gäller för
Se även
- AddAutomationPropertyChangedEventHandler(AutomationElement, TreeScope, AutomationPropertyChangedEventHandler, AutomationProperty[])
- RemoveAutomationPropertyChangedEventHandler(AutomationElement, AutomationPropertyChangedEventHandler)
- Prenumerera på UI Automation-händelser
- UI Automation-händelser för klienter