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.