InvokePattern.Invoke Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wysyła żądanie aktywowania kontrolki i inicjuje pojedynczą, jednoznaczną akcję.
public:
void Invoke();
public void Invoke ();
member this.Invoke : unit -> unit
Public Sub Invoke ()
Wyjątki
Element nie obsługuje wzorca kontrolki InvokePattern ani jest ukryty lub zablokowany.
Element nie jest włączony. Można podnieść, gdy dostawca automatyzacji interfejsu IsEnabled użytkownika zaimplementował własną obsługę właściwości.
Przykłady
W poniższym przykładzie InvokePattern wzorzec kontrolki jest uzyskiwany z kontrolki, a metoda jest wywoływana 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 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
Uwagi
Wywołania metody do Invoke powinny być zwracane natychmiast bez blokowania. Jednak to zachowanie jest całkowicie zależne od implementacji dostawcy automatyzacji interfejsu użytkownika firmy Microsoft. W scenariuszach, w których wywołanie Invoke powoduje problem z blokowaniem (np. modalne okno dialogowe), do wywołania metody może być wymagany oddzielny wątek pomocnika.