Compartilhar via


InvokePattern.Invoke Método

Definição

Envia uma solicitação para ativar um controle e iniciar sua ação única não ambígua.

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

Exceções

O elemento não é compatível com o padrão de controle InvokePattern ou então está oculto ou bloqueado.

Elemento não habilitado. Poderá ser gerado quando um provedor de automação de interface do usuário tiver implementado seu próprio tratamento da propriedade IsEnabled.

Exemplos

No exemplo a seguir, um InvokePattern padrão de controle é obtido de um controle e o Invoke método é chamado.

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

Comentários

As chamadas para Invoke devem retornar imediatamente sem bloqueio. No entanto, esse comportamento depende inteiramente da implementação do provedor de Automação da Interface do Usuário da Microsoft. Em cenários em que a chamada Invoke causa um problema de bloqueio (como uma caixa de diálogo modal), um thread auxiliar separado pode ser necessário para chamar o método .

Aplica-se a

Confira também