StructureChangedEventArgs(StructureChangeType, Int32[]) Konstruktor
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.