InvokePattern.Invoke Methode

Definitie

Hiermee wordt een aanvraag verzonden om een besturingselement te activeren en een enkele, ondubbelzinnige actie te starten.

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

Uitzonderingen

Het element biedt geen ondersteuning voor het InvokePattern besturingspatroon of wordt verborgen of geblokkeerd.

Het element is niet ingeschakeld. Kan worden gegenereerd wanneer een UI Automation provider een eigen verwerking van de eigenschap IsEnabled heeft geïmplementeerd.

Voorbeelden

In het volgende voorbeeld wordt een InvokePattern besturingselementpatroon verkregen uit een besturingselement en wordt de Invoke methode aangeroepen.

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

Opmerkingen

Oproepen die Invoke moeten worden geretourneerd, moeten onmiddellijk worden geretourneerd zonder te blokkeren. Dit gedrag is echter volledig afhankelijk van de implementatie van de Microsoft UI Automation provider. In scenario's waarbij het aanroepen Invoke een blokkeringsprobleem veroorzaakt (zoals een modaal dialoogvenster) kan een afzonderlijke helper-thread nodig zijn om de methode aan te roepen.

Van toepassing op

Zie ook