InvokePattern.Invoke Método

Definição

Envia um pedido para ativar um controlo e iniciar a sua única ação inequívoca.

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

Exceções

O elemento não suporta o InvokePattern padrão de controlo ou está oculto ou bloqueado.

O elemento não está ativado. Pode ser aumentado quando um fornecedor de Automatização da Interface de Utilizador implementou a sua própria gestão da propriedade IsEnabled.

Exemplos

No exemplo seguinte, obtém-se um InvokePattern padrão de controlo a partir de um controlo 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

Observações

As chamadas para Invoke devem ser retornadas imediatamente sem bloqueios. No entanto, este comportamento depende inteiramente da implementação do Microsoft Automatização da Interface de Utilizador fornecedor. Em cenários em que chamar Invoke causa um problema de bloqueio (como um diálogo modal), pode ser necessário um thread auxiliar separado para chamar o método.

Aplica-se a

Ver também