InvokePattern.Invoke Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Направляет запрос на активацию элемента управления и инициирует его единственное, однозначное действие.
public:
void Invoke();
public void Invoke ();
member this.Invoke : unit -> unit
Public Sub Invoke ()
Исключения
Элемент не поддерживает шаблон элемента управления InvokePattern, или он является скрытым или заблокированным.
Элемент не включен. Может вызываться, когда поставщик автоматизации пользовательского интерфейса реализовал собственную обработку свойства IsEnabled.
Примеры
В следующем примере 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 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
Комментарии
Вызовы должны Invoke возвращаться немедленно без блокировки. Однако это поведение полностью зависит от реализации поставщика автоматизации пользовательского интерфейса Майкрософт. В сценариях, где вызов Invoke вызывает проблему блокировки (например, модальное диалоговое окно), для вызова метода может потребоваться отдельный вспомогательный поток.