Freigeben über


InvokePattern.Invoke Methode

Definition

Sendet eine Anforderung zum Aktivieren eines Steuerelements und Initiieren der einzelnen eindeutigen Aktion.

public:
 void Invoke();
public void Invoke ();
member this.Invoke : unit -> unit
Public Sub Invoke ()

Ausnahmen

Das Element unterstützt das InvokePattern-Steuerelementmuster nicht oder es ist ausgeblendet bzw. blockiert.

Das Element ist nicht aktiviert. Dies kann ausgelöst werden, wenn der Benutzeroberflächenautomatisierungs-Anbieter seine eigene Behandlung der IsEnabled-Eigenschaft implementiert hat.

Beispiele

Im folgenden Beispiel wird ein InvokePattern Steuerelementmuster aus einem -Steuerelement abgerufen, und die Invoke -Methode wird aufgerufen.

///--------------------------------------------------------------------
/// <summary>
/// Obtains an InvokePattern control pattern from a control
/// and calls the InvokePattern.Invoke() method on the control.
/// </summary>
/// <param name="targetControl">
/// The control of interest.
/// </param>
///--------------------------------------------------------------------
private void InvokeControl(AutomationElement targetControl)
{
    InvokePattern invokePattern = null;

    try
    {
        invokePattern =
            targetControl.GetCurrentPattern(InvokePattern.Pattern)
            as InvokePattern;
    }
    catch (ElementNotEnabledException)
    {
        // Object is not enabled
        return;
    }
    catch (InvalidOperationException)
    {
        // object doesn't support the InvokePattern control pattern
        return;
    }

    invokePattern.Invoke();
}
'''--------------------------------------------------------------------
''' <summary>
''' Obtains an InvokePattern control pattern from a control
''' and calls the InvokePattern.Invoke() method on the control.
''' </summary>
''' <param name="targetControl">
''' The control of interest.
''' </param>
'''--------------------------------------------------------------------
Private Sub InvokeControl(ByVal targetControl As AutomationElement) 
    Dim invokePattern As InvokePattern = Nothing
    
    Try
        invokePattern = _
        DirectCast(targetControl.GetCurrentPattern(invokePattern.Pattern), _
        InvokePattern)
    Catch e As ElementNotEnabledException
        ' Object is not enabled.
        Return
    Catch e As InvalidOperationException
        ' Object doesn't support the InvokePattern control pattern
        Return
    End Try
    
    invokePattern.Invoke()

End Sub

Hinweise

Aufrufe von Invoke sollten sofort ohne Blockierung zurückgegeben werden. Dieses Verhalten ist jedoch vollständig von der Implementierung des Microsoft UI Automation-Anbieters abhängig. In Szenarien, in denen der Aufruf Invoke ein Blockierungsproblem verursacht (z. B. ein modales Dialogfeld), ist möglicherweise ein separater Hilfsthread erforderlich, um die -Methode aufzurufen.

Gilt für:

Weitere Informationen