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 ú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 dá suporte ao InvokePattern padrão de controle ou está oculto ou bloqueado.
O elemento não está habilitado. Pode ser gerado quando um provedor de Automação da Interface do Usuário implementou sua própria manipulação 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 a Invoke serem retornadas imediatamente sem bloqueio. No entanto, esse comportamento depende inteiramente da implementação do provedor de Microsoft Automação da Interface do Usuário. 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.