StructureChangedEventArgs(StructureChangeType, Int32[]) Конструктор

Определение

Инициализирует новый экземпляр StructureChangeType класса, указав тип изменения и идентификатор элемента, структура которого изменилась.

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

Параметры

structureChangeType
StructureChangeType

Отдельное значение, указывающее на тип изменения.

runtimeId
Int32[]

Идентификатор среды выполнения элемента модель автоматизации пользовательского интерфейса, структура которого изменилась.

Примеры

В следующем примере показано, как создать и вызвать событие при добавлении или удалении дочерних элементов из настраиваемого списка.

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

Комментарии

Возвращаемые structureChangeType значения зависят от реализации поставщика модель автоматизации пользовательского интерфейса. Например, если элементы добавляются или удаляются из списка Win32, если поставщик не может определить количество добавленных или удаленных элементов, он может указать ChildrenInvalidated или нет ChildAdded ChildRemoved.

В следующей таблице описаны сведения о событии, полученном StructureChangedEventHandler для различных изменений структуры.

structureChangeType Источник событий runtimeId
ChildAdded Добавленный дочерний элемент. Добавленный дочерний элемент.
ChildRemoved Родительский элемент удаляемого дочернего элемента. Удаленный дочерний элемент.
ChildrenBulkAdded Родительский элемент добавленных дочерних элементов. Родительский элемент добавленных дочерних элементов.
ChildrenBulkRemoved Родительский элемент дочерних элементов, которые были удалены. Родительский элемент дочерних элементов, которые были удалены.
ChildrenInvalidated Родительский элемент дочерних элементов, которые были недействительными. Родительский элемент дочерних элементов, которые были недействительными

Пользовательские элементы управления могут не предоставлять значимое значение в runtimeId. Для получения дополнительной информации см. RaiseStructureChangedEvent.

Применяется к

См. также раздел