StructureChangedEventArgs(StructureChangeType, Int32[]) Konstruktor

Definition

Initierar en ny instans av StructureChangeType klassen och anger typen av ändring och identifieraren (ID) för elementet vars struktur har ändrats.

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())

Parametrar

structureChangeType
StructureChangeType

Ett enda värde som anger typ av ändring.

runtimeId
Int32[]

Körningsidentifieraren (ID) för det UI Automation element vars struktur har ändrats.

Exempel

I följande exempel visas hur du skapar och genererar en händelse när underordnade objekt läggs till i eller tas bort från en anpassad listruta.

/// <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

Kommentarer

De värden som kan returneras i structureChangeType beror på implementeringen av UI Automation providern. När objekt till exempel läggs till eller tas bort från en Win32-listruta, om providern inte kan fastställa antalet objekt som har lagts till eller tagits bort, kan den ange ChildrenInvalidated och inte ChildAdded eller ChildRemoved.

I följande tabell beskrivs informationen i händelsen som tas emot av StructureChangedEventHandler för olika strukturändringar.

structureChangeType Händelsekälla runtimeId
ChildAdded Barnet som lades till. Barnet som lades till.
ChildRemoved Överordnad för det underordnade som togs bort. Barnet som togs bort.
ChildrenBulkAdded Överordnad för de underordnade som lades till. Överordnad för de underordnade som lades till.
ChildrenBulkRemoved Överordnad för de underordnade som har tagits bort. Överordnad för de underordnade som har tagits bort.
ChildrenInvalidated Överordnad för de underordnade som har ogiltigförklarats. Överordnad för de underordnade som har ogiltigförklarats

Anpassade kontroller kanske inte kan ange ett meningsfullt värde i runtimeId. Mer information finns i RaiseStructureChangedEvent.

Gäller för

Se även