InvokePattern.Invoke Metod

Definition

Skickar en begäran om att aktivera en kontroll och initiera dess enkla, tvetydiga åtgärd.

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

Undantag

Elementet stöder InvokePattern inte kontrollmönstret eller är dolt eller blockerat.

Elementet är inte aktiverat. Kan genereras när en UI Automation-provider har implementerat sin egen hantering av egenskapen IsEnabled.

Exempel

I följande exempel hämtas ett InvokePattern kontrollmönster från en kontroll och Invoke metoden anropas.

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

Kommentarer

Anrop till Invoke bör returneras omedelbart utan blockering. Det här beteendet är dock helt beroende av implementeringen av Microsoft UI Automation provider. I scenarier där anrop Invoke orsakar ett blockeringsproblem (till exempel en modal dialogruta) kan en separat hjälptråd krävas för att anropa metoden.

Gäller för

Se även