InvokePattern.Invoke Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.