Share via


StructureChangedEventArgs(StructureChangeType, Int32[]) Constructor

Definición

Inicializa una nueva instancia de la StructureChangeType clase , especificando el tipo de cambio y el identificador (ID) del elemento cuya estructura cambió.

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

Parámetros

structureChangeType
StructureChangeType

Valor único que especifica el tipo de cambio.

runtimeId
Int32[]

Identificador en tiempo de ejecución (ID) del elemento Automatización de la interfaz de usuario cuya estructura cambió.

Ejemplos

En el ejemplo siguiente se muestra cómo construir y generar un evento cuando se agregan o quitan elementos secundarios de un cuadro de lista personalizado.

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

Comentarios

Los valores que se pueden devolver dependen structureChangeType de la implementación del proveedor de Automatización de la interfaz de usuario. Por ejemplo, cuando se agregan o quitan elementos de un cuadro de lista Win32, si el proveedor no puede determinar el número de elementos agregados o quitados, puede especificar ChildrenInvalidated y no ChildAdded o ChildRemoved.

En la tabla siguiente se describe la información del evento recibido por StructureChangedEventHandler para los distintos cambios de estructura.

structureChangeType Origen del evento runtimeId
ChildAdded Elemento secundario que se ha agregado. Elemento secundario que se ha agregado.
ChildRemoved Elemento primario del elemento secundario que se quitó. Elemento secundario que se ha eliminado.
ChildrenBulkAdded Elemento primario de los elementos secundarios que se agregaron. Elemento primario de los elementos secundarios que se agregaron.
ChildrenBulkRemoved Elemento primario de los elementos secundarios que se quitaron. Elemento primario de los elementos secundarios que se quitaron.
ChildrenInvalidated Elemento primario de los elementos secundarios que se invalidaron. Elemento primario de los elementos secundarios que se invalidaron

Es posible que los controles personalizados no puedan proporcionar un valor significativo en runtimeId. Para obtener más información, vea RaiseStructureChangedEvent.

Se aplica a

Consulte también