InvokePattern.Invoke Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 .