AutomationElement.FindFirst(TreeScope, Condition) Methode

Definitie

Retourneert het eerste onderliggende of onderliggende element dat overeenkomt met de opgegeven voorwaarde.

public:
 System::Windows::Automation::AutomationElement ^ FindFirst(System::Windows::Automation::TreeScope scope, System::Windows::Automation::Condition ^ condition);
public System.Windows.Automation.AutomationElement FindFirst(System.Windows.Automation.TreeScope scope, System.Windows.Automation.Condition condition);
member this.FindFirst : System.Windows.Automation.TreeScope * System.Windows.Automation.Condition -> System.Windows.Automation.AutomationElement
Public Function FindFirst (scope As TreeScope, condition As Condition) As AutomationElement

Parameters

scope
TreeScope

Een bitsgewijze combinatie van waarden waarmee het bereik van de zoekopdracht wordt opgegeven.

condition
Condition

Het object met de criteria die moeten worden vergeleken.

Retouren

Het eerste element dat voldoet aan de voorwaarde of null als er geen overeenkomst wordt gevonden.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een onderliggend venster kunt vinden op basis van de id.

/// <summary>
/// Find a UI Automation child element by ID.
/// </summary>
/// <param name="controlName">Name of the control, such as "button1"</param>
/// <param name="parentElement">Parent element, such as an application window, or the 
/// AutomationElement.RootElement when searching for the application window.</param>
/// <returns>The UI Automation element.</returns>
private AutomationElement FindChildElement(String controlName, AutomationElement rootElement)
{
    if ((controlName == "") || (rootElement == null))
    {
        throw new ArgumentException("Argument cannot be null or empty.");
    }
    // Set a property condition that will be used to find the main form of the
    // target application. In the case of a WinForms control, the name of the control
    // is also the AutomationId of the element representing the control.
    Condition propCondition = new PropertyCondition(
        AutomationElement.AutomationIdProperty, controlName, PropertyConditionFlags.IgnoreCase);

    // Find the element.
    return rootElement.FindFirst(TreeScope.Element | TreeScope.Children, propCondition);
}
''' <summary>
''' Find a UI Automation child element by ID.
''' </summary>
''' <param name="controlName">Name of the control, such as "button1"</param>
''' <param name="rootElement">Parent element, such as an application window, or the 
''' AutomationElement.RootElement when searching for the application window.</param>
''' <returns>The UI Automation element.</returns>
Private Function FindChildElement(ByVal controlName As String, ByVal rootElement As AutomationElement) _
    As AutomationElement
    If controlName = "" OrElse rootElement Is Nothing Then
        Throw New ArgumentException("Argument cannot be null or empty.")
    End If
    ' Set a property condition that will be used to find the main form of the
    ' target application. In the case of a WinForms control, the name of the control
    ' is also the AutomationId of the element representing the control.
    Dim propCondition As New PropertyCondition(AutomationElement.AutomationIdProperty, _
        controlName, PropertyConditionFlags.IgnoreCase)

    ' Find the element.
    Return rootElement.FindFirst(TreeScope.Element Or TreeScope.Children, propCondition)

End Function 'FindChildElement

Opmerkingen

Het bereik van de zoekopdracht is relatief ten opzichte van het element waarop de methode wordt aangeroepen.

Wanneer u op het bureaublad zoekt naar een venster op het hoogste niveau, moet u dit niet opgevenChildren.scopeDescendants Een zoekopdracht door de hele substructuur van het bureaublad kan duizenden items herhalen en leiden tot een stack-overloop.

Als uw clienttoepassing mogelijk elementen in een eigen gebruikersinterface probeert te vinden, moet u alle UI Automation aanroepen uitvoeren op een afzonderlijke thread.

Van toepassing op

Zie ook