AutomationElement.FindFirst(TreeScope, Condition) Yöntem

Tanım

Belirtilen koşulla eşleşen ilk alt veya alt öğeyi döndürür.

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

Parametreler

scope
TreeScope

Aramanın kapsamını belirten değerlerin bit düzeyinde birleşimi.

condition
Condition

Eşleşecek ölçütleri içeren nesne.

Döndürülenler

AutomationElement

Koşulu karşılayan veya null eşleşme bulunamazsa ilk öğe.

Örnekler

Aşağıdaki örnekte, bir alt pencerenin tanımlayıcısından nasıl bulunu olduğu gösterilmektedir.

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

Açıklamalar

Aramanın kapsamı, yönteminin çağrıldığı öğeye göredir.

Masaüstünde en üst düzey bir pencere ararken, yerine içinde scopeDescendantsbelirttiğinizden Children emin olun. Masaüstünün alt ağacının tamamında yapılan bir arama binlerce öğede yinelenebilir ve yığın taşmasına yol açabilir.

İstemci uygulamanız kendi kullanıcı arabirimindeki öğeleri bulmaya çalışabilirse, tüm UI Otomasyonu çağrılarını ayrı bir iş parçacığında yapmanız gerekir.

Şunlara uygulanır

Ayrıca bkz.