StructureChangedEventArgs(StructureChangeType, Int32[]) Konstruktor

Definition

Initialisiert eine neue Instanz der StructureChangeType Klasse, die den Änderungstyp und die ID des Elements angibt, dessen Struktur geändert wurde.

public:
 StructureChangedEventArgs(System::Windows::Automation::StructureChangeType structureChangeType, cli::array <int> ^ runtimeId);
public StructureChangedEventArgs (System.Windows.Automation.StructureChangeType structureChangeType, int[] runtimeId);
new System.Windows.Automation.StructureChangedEventArgs : System.Windows.Automation.StructureChangeType * int[] -> System.Windows.Automation.StructureChangedEventArgs
Public Sub New (structureChangeType As StructureChangeType, runtimeId As Integer())

Parameter

structureChangeType
StructureChangeType

Ein einzelner Wert, der den Typ der Änderung angibt.

runtimeId
Int32[]

Der Laufzeitbezeichner (ID) des Benutzeroberflächenautomatisierung Elements, dessen Struktur geändert wurde.

Beispiele

Das folgende Beispiel zeigt, wie Sie ein Ereignis erstellen und auslösen, wenn untergeordnete Elemente einem benutzerdefinierten Listenfeld hinzugefügt oder entfernt werden.

/// <summary>
/// Responds to an addition to the UI Automation tree structure by raising an event.
/// </summary>
/// <param name="list">
/// The list to which the item was added.
/// </param>
/// <remarks>
/// For the runtime Id of the item, pass 0 because the provider cannot know
/// what its actual runtime Id is.
/// </remarks>
public static void OnStructureChangeAdd(CustomListControl list)
{
    if (AutomationInteropProvider.ClientsAreListening)
    {
        int[] fakeRuntimeId = { 0 };
        StructureChangedEventArgs args =
            new StructureChangedEventArgs(StructureChangeType.ChildrenBulkAdded, 
            fakeRuntimeId);
        AutomationInteropProvider.RaiseStructureChangedEvent(
            (IRawElementProviderSimple)list.Provider, args);
    }
}

/// <summary>
/// Responds to a removal from the UI Automation tree structure 
/// by raising an event.
/// </summary>
/// <param name="list">
/// The list from which the item was removed.
/// </param>
/// <remarks>
/// For the runtime Id of the list, pass 0 because the provider cannot know
/// what its actual runtime ID is.
/// </remarks>
public static void OnStructureChangeRemove(CustomListControl list)
{
    if (AutomationInteropProvider.ClientsAreListening)
    {
        int[] fakeRuntimeId = { 0 };
        StructureChangedEventArgs args =
            new StructureChangedEventArgs(StructureChangeType.ChildrenBulkRemoved, 
            fakeRuntimeId);
        AutomationInteropProvider.RaiseStructureChangedEvent(
            (IRawElementProviderSimple)list.Provider, args);
    }
}
''' <summary>
''' Responds to an addition to the UI Automation tree structure by raising an event.
''' </summary>
''' <param name="list">
''' The list to which the item was added.
''' </param>
''' <remarks>
''' For the runtime Id of the item, pass 0 because the provider cannot know
''' what its actual runtime Id is.
''' </remarks>
Public Shared Sub OnStructureChangeAdd(ByVal list As CustomListControl)
    If AutomationInteropProvider.ClientsAreListening Then
        Dim fakeRuntimeId(1) As Integer
        fakeRuntimeId(0) = 0
        Dim args As New StructureChangedEventArgs( _
            StructureChangeType.ChildrenBulkAdded, fakeRuntimeId)
        AutomationInteropProvider.RaiseStructureChangedEvent( _
            CType(list.Provider, IRawElementProviderSimple), args)
    End If

End Sub


''' <summary>
''' Responds to a removal from the UI Automation tree structure by raising an event.
''' </summary>
''' <param name="list">
''' The list from which the item was removed.
''' </param>
''' <remarks>
''' For the runtime Id of the list, pass 0 because the provider cannot know
''' what its actual runtime ID is.
''' </remarks>
Public Shared Sub OnStructureChangeRemove(ByVal list As CustomListControl)
    If AutomationInteropProvider.ClientsAreListening Then
        Dim fakeRuntimeId(1) As Integer
        fakeRuntimeId(0) = 0
        Dim args As New StructureChangedEventArgs( _
            StructureChangeType.ChildrenBulkRemoved, fakeRuntimeId)
        AutomationInteropProvider.RaiseStructureChangedEvent( _
            CType(list.Provider, IRawElementProviderSimple), args)
    End If

End Sub

Hinweise

Die Werte, die zurückgegeben structureChangeType werden können, hängen von der Implementierung des Benutzeroberflächenautomatisierung-Anbieters ab. Wenn z. B. Elemente aus einem Win32-Listenfeld hinzugefügt oder entfernt werden, kann der Anbieter die Anzahl der hinzugefügten oder entfernten Elemente nicht ermitteln, möglicherweise angeben ChildrenInvalidated und nicht oder ChildRemovednichtChildAdded.

In der folgenden Tabelle werden die Informationen im Ereignis beschrieben, das von den StructureChangedEventHandler verschiedenen Strukturänderungen empfangen wird.

structureChangeType Ereignisquelle runtimeId
ChildAdded Das untergeordnete Element, das hinzugefügt wurde. Das untergeordnete Element, das hinzugefügt wurde.
ChildRemoved Das übergeordnete Element des untergeordneten Elements, das entfernt wurde. Das untergeordnete Element, das entfernt wurde.
ChildrenBulkAdded Das übergeordnete Element der untergeordneten Elemente, die hinzugefügt wurden. Das übergeordnete Element der untergeordneten Elemente, die hinzugefügt wurden.
ChildrenBulkRemoved Das übergeordnete Element der untergeordneten Elemente, die entfernt wurden. Das übergeordnete Element der untergeordneten Elemente, die entfernt wurden.
ChildrenInvalidated Das übergeordnete Element der untergeordneten Elemente, die ungültig wurden. Das übergeordnete Element der untergeordneten Elemente, die ungültig wurden

Benutzerdefinierte Steuerelemente können möglicherweise keinen aussagekräftigen Wert in runtimeId. Weitere Informationen finden Sie unter RaiseStructureChangedEvent.

Gilt für

Siehe auch