Automation.AddStructureChangedEventHandler Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Inscrit la méthode qui gère les événements modifiés par la structure.
public:
static void AddStructureChangedEventHandler(System::Windows::Automation::AutomationElement ^ element, System::Windows::Automation::TreeScope scope, System::Windows::Automation::StructureChangedEventHandler ^ eventHandler);
public static void AddStructureChangedEventHandler(System.Windows.Automation.AutomationElement element, System.Windows.Automation.TreeScope scope, System.Windows.Automation.StructureChangedEventHandler eventHandler);
static member AddStructureChangedEventHandler : System.Windows.Automation.AutomationElement * System.Windows.Automation.TreeScope * System.Windows.Automation.StructureChangedEventHandler -> unit
Public Shared Sub AddStructureChangedEventHandler (element As AutomationElement, scope As TreeScope, eventHandler As StructureChangedEventHandler)
Paramètres
- element
- AutomationElement
Élément UI Automation auquel associer le gestionnaire d’événements.
- scope
- TreeScope
Étendue des événements à gérer ; c’est-à-dire, qu’ils soient sur l’élément lui-même, ou sur ses ancêtres et descendants.
- eventHandler
- StructureChangedEventHandler
Méthode à appeler lorsque l’événement de modification de la structure se produit.
Exemples
L’exemple suivant montre un délégué de gestionnaire d’événements modifié par structure qui sera appelé chaque fois que la sous-arborescence des modifications spécifiées sera modifiée AutomationElement .
/// <summary>
/// Handles structure-changed events. If a new app window has been added, this method ensures
/// it's in the list of runtime IDs and subscribed to window-close events.
/// </summary>
/// <param name="sender">Object that raised the event.</param>
/// <param name="e">Event arguments.</param>
/// <remarks>
/// An exception can be thrown by the UI Automation core if the element disappears
/// before it can be processed -- for example, if a menu item is only briefly visible.
/// This exception cannot be caught here because it crosses native/managed boundaries.
/// In the debugger, you can ignore it and continue execution. The exception does not cause
/// a break when the executable is being run.
/// </remarks>
private void OnStructureChanged(object sender, StructureChangedEventArgs e)
{
AutomationElement element = sender as AutomationElement;
if (e.StructureChangeType == StructureChangeType.ChildAdded)
{
Object windowPattern;
if (false == element.TryGetCurrentPattern(WindowPattern.Pattern, out windowPattern))
{
return;
}
int[] rid = e.GetRuntimeId();
if (RuntimeIdListed(rid, savedRuntimeIds) < 0)
{
AddToWindowHandler(element);
savedRuntimeIds.Add(rid);
}
}
}
''' <summary>
''' Handles structure-changed events. If a new app window has been added, this method ensures
''' it's in the list of runtime IDs and subscribed to window-close events.
''' </summary>
''' <param name="sender">Object that raised the event.</param>
''' <param name="e">Event arguments.</param>
''' <remarks>
''' An exception can be thrown by the UI Automation core if the element disappears
''' before it can be processed -- for example, if a menu item is only briefly visible.
''' This exception cannot be caught here because it crosses native/managed boundaries.
''' In the debugger, you can ignore it and continue execution. The exception does not cause
''' a break when the executable is being run.
''' </remarks>
Private Sub OnStructureChanged(ByVal sender As Object, ByVal e As StructureChangedEventArgs)
Dim element As AutomationElement = DirectCast(sender, AutomationElement)
If e.StructureChangeType = StructureChangeType.ChildAdded Then
Dim myWindowPattern As Object = Nothing
If False = element.TryGetCurrentPattern(WindowPattern.Pattern, myWindowPattern) Then
Return
End If
Dim rid As Integer() = e.GetRuntimeId()
If RuntimeIdListed(rid, savedRuntimeIds) < 0 Then
AddToWindowHandler(element)
savedRuntimeIds.Add(rid)
End If
End If
End Sub
L’exemple de code suivant ajoute une instance du délégué.
// elementRoot is an AutomationElement.
Automation.AddStructureChangedEventHandler(elementRoot, TreeScope.Children,
new StructureChangedEventHandler(OnStructureChanged));
' elementRoot is an AutomationElement.
Automation.AddStructureChangedEventHandler(elementRoot, TreeScope.Children, New StructureChangedEventHandler(AddressOf OnStructureChanged))
Remarques
eventHandler peut être une instance de la méthode ou une référence à la méthode (AddressOf dans Visual Basic).
S’applique à
Voir aussi
- RemoveStructureChangedEventHandler(AutomationElement, StructureChangedEventHandler)
- AddAutomationEventHandler(AutomationEvent, AutomationElement, TreeScope, AutomationEventHandler)
- AddAutomationFocusChangedEventHandler(AutomationFocusChangedEventHandler)
- S’abonner aux événements UI Automation
- Vue d’ensemble des événements UI Automation