IRawElementProviderAdviseEvents.AdviseEventRemoved(Int32, Int32[]) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用者介面自動化用戶端停止接聽特定的事件時,包括屬性變更的事件,通知使用者介面自動化提供者。
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 這類 WindowClosedEvent 的 AutomationEvent 比較。 您也可以使用 LookupById 取得 AutomationEvent 。