InvokePattern.Invoke Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengirim permintaan untuk mengaktifkan kontrol dan memulai tindakan tunggal yang tidak ambigu.
public:
void Invoke();
public void Invoke ();
member this.Invoke : unit -> unit
Public Sub Invoke ()
Pengecualian
Elemen tidak mendukung InvokePattern pola kontrol atau disembunyikan atau diblokir.
Elemen tidak diaktifkan. Dapat dinaikkan ketika penyedia Automation UI telah menerapkan penanganan IsEnabled propertinya sendiri.
Contoh
Dalam contoh InvokePattern berikut, pola kontrol diperoleh dari kontrol dan Invoke metode dipanggil.
///--------------------------------------------------------------------
/// <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
Keterangan
Panggilan ke Invoke harus segera kembali tanpa memblokir. Namun, perilaku ini sepenuhnya tergantung pada implementasi penyedia Microsoft UI Automation. Dalam skenario di mana panggilan Invoke menyebabkan masalah pemblokiran (seperti dialog modal) utas pembantu terpisah mungkin diperlukan untuk memanggil metode .