다음을 통해 공유


InvokePattern.Invoke 메서드

정의

요청을 보내 컨트롤을 활성화하고 해당하는 명확한 단일 작업을 시작합니다.

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

예외

이 요소는 InvokePattern 컨트롤 패턴을 지원하지 않으며 숨겨져 있거나 차단되었습니다.

요소가 활성화되지 않았습니다. UI 자동화 공급자가 IsEnabled 속성의 자체 처리를 구현했을 때 발생할 수 있습니다.

예제

다음 예제에서는 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 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

설명

에 대 한 호출 Invoke 차단 하지 않고 즉시 반환 해야 합니다. 그러나 이 동작은 전적으로 Microsoft UI 자동화 공급자 구현에 따라 달라집니다. 시나리오에서 호출 하는 경우 Invoke 하면 (예: 모달 대화 상자) 차단 문제를 별도 스레드 도우미 메서드를 호출 해야 할 수 있습니다.

적용 대상

추가 정보