Aracılığıyla paylaş


InvokePattern.Invoke Yöntem

Tanım

Bir denetimi etkinleştirmek ve tek, kesin eylemini başlatmak için bir istek gönderir.

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

Özel durumlar

öğesi denetim desenini desteklemez veya gizlenir InvokePattern veya engellenir.

öğesi etkinleştirilmedi. Ui Otomasyonu sağlayıcısı özelliğin kendi işlemesini uyguladığında IsEnabled tetiklenebilir.

Örnekler

Aşağıdaki örnekte bir denetimden bir InvokePattern denetim deseni elde edilir ve Invoke yöntemi çağrılır.

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

Açıklamalar

Invoke çağrısı engellemeden hemen döndürülmelidir. Ancak bu davranış tamamen Microsoft UI Otomasyonu sağlayıcısı uygulamasına bağlıdır. Çağrının Invoke engelleme sorununa (kalıcı iletişim kutusu gibi) neden olduğu senaryolarda, yöntemini çağırmak için ayrı bir yardımcı iş parçacığı gerekebilir.

Şunlara uygulanır

Ayrıca bkz.