IRawElementProviderAdviseEvents.AdviseEventRemoved(Int32, Int32[]) 方法

定义

在 UI 自动化客户端停止侦听特定事件(包括更改了属性的事件)时,通知 UI 自动化提供程序。

public:
 void AdviseEventRemoved(int eventId, cli::array <int> ^ properties);
public void AdviseEventRemoved (int eventId, int[] properties);
abstract member AdviseEventRemoved : int * int[] -> unit
Public Sub AdviseEventRemoved (eventId As Integer, properties As Integer())

参数

eventId
Int32

要删除的事件的标识符。

properties
Int32[]

正在删除的属性的标识符;如果正在删除的事件侦听器没有侦听属性事件,则为 null

示例

以下示例从已订阅的属性列表中删除属性更改。

void IRawElementProviderAdviseEvents.AdviseEventRemoved(int eventId,
                                                        int[] properties)
{
    if (eventId == AutomationElement.AutomationPropertyChangedEvent.Id)
    {
        Console.WriteLine("Property changes no longer subscribed to:");
        foreach (int i in properties)
        {
            AutomationProperty property = AutomationProperty.LookupById(i);
            // Remove from an ArrayList.
            subscribedProperties.Remove(property);
        }
    }
}
Sub AdviseEventRemoved(ByVal eventId As Integer, ByVal properties() As Integer) _
    Implements IRawElementProviderAdviseEvents.AdviseEventRemoved

    If eventId = AutomationElement.AutomationPropertyChangedEvent.Id Then
        For Each i As Integer In properties
            Dim autoProperty As AutomationProperty = AutomationProperty.LookupById(i)
            ' Remove from ArrayList.
            subscribedProperties.Remove(autoProperty)
        Next
    End If

End Sub

注解

此方法允许 UI 自动化提供程序通过不引发不再侦听的事件来减少开销。

eventId可以与 Id (例如 )WindowClosedEventAutomationEvent 比较。 还可以使用 LookupById获取 AutomationEvent

适用于