This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
This documentation is archived and is not being maintained.

IInvokeProvider.Invoke أسلوب

Visual Studio 2010

قم بإرسال طلب تنشيط عنصر تحكم وتبدأ به إجراء واحدة والغموض.

مساحة الاسم:  System.Windows.Automation.Provider
التجميع:  UIAutomationProvider (في UIAutomationProvider.dll)


إذا لم يتم ممكّن عنصر التحكم.

Invoke هو an غير متزامن يتصل و must return immediately without blocking.


This سلوك هو particularly حرج for عناصر التحكم that, directly أو indirectly, يشغّل a مربع حوار مشروط when invoked. أي واجه المستخدم Automation العميل that instigated the حدث will remain blocked until the مربع حوار مشروط هو مغلق.

Invoke يرفعInvokedEventحدث. If possible, the حدث should be مرفوع بعد the عنصر تحكم has مكتمل its associated إجراء.

InvokedEvent should be مرفوع قبل servicing the Invoke طلب في the following scenarios:

  • It ليس possible أو practical إلى wait until the إجراء هو إكمال.

  • The إجراء يتطلب مستخدم تفاعل.

  • The إجراء هو الوقت-consuming و will cause the calling العميل إلى حظر for a significant الطول of الوقت.

The following مثال implements the Invoke أسلوب تشغيل the MouseDown معالج الأحداث of a عنصر تحكم. Assume that providerControl هو a عضو متغير that was initialized when the فئة was constructed.

/// <summary>
/// Responds to an InvokePattern.Invoke by simulating a MouseDown event.
/// </summary>
/// <remarks>
/// ProviderControl is a button control object that also implements 
/// IRawElementProviderSimple.
/// </remarks>
void IInvokeProvider.Invoke()
    // If the control is not enabled, we're responsible for letting UIAutomation know.
    // It catches the exception and then throws it to the client.
    if (false == (bool)rawElementProvider.GetPropertyValue(AutomationElementIdentifiers.IsEnabledProperty.Id))
        throw new ElementNotEnabledException();

    // Create arguments for the event. The parameters aren't used.
    MouseEventArgs mouseArgs = new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0);

    // Invoke the MouseDown handler. We cannot call MyControl_MouseDown directly, 
    // because it is illegal to update the UI from a different thread.
    MouseEventHandler onMouseEvent = ProviderControl.RootButtonControl_MouseDown;
    ProviderControl.BeginInvoke(onMouseEvent, new object[] { this, mouseArgs });

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4