Поделиться через


WindowClosedEventArgs.GetRuntimeId Метод

Определение

Извлекает идентификатор среды выполнения модель автоматизации пользовательского интерфейса, связанный с этим событием.

public:
 cli::array <int> ^ GetRuntimeId();
public int[] GetRuntimeId ();
member this.GetRuntimeId : unit -> int[]
Public Function GetRuntimeId () As Integer()

Возвращаемое значение

Int32[]

Идентификатор модель автоматизации пользовательского интерфейса среды выполнения окна, в котором было создано событие.

Примеры

В следующем примере обработчик события закрытия окна проверяет, находится ли идентификатор среды выполнения закрытого окна в списке идентификаторов открытых окон. Если идентификатор среды выполнения присутствует, он удаляется из списка.

/// <summary>
/// Handles window-closed events. Removes the window from the top-level window list.
/// </summary>
/// <param name="sender">Object that raised the event.</param>
/// <param name="e">Event arguments.</param>
/// <remarks>
/// runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
/// </remarks>
private void WindowClosedHandler(object sender, AutomationEventArgs e)
{
    WindowClosedEventArgs windowEventArgs = (WindowClosedEventArgs)e;
    int[] runtimeIdentifiers = windowEventArgs.GetRuntimeId();
    int index = RuntimeIdListed(runtimeIdentifiers, savedRuntimeIds);
    if (index >= 0)
    {
        savedRuntimeIds.RemoveAt(index);
        Console.WriteLine("Window closed.");
    }
}

/// <summary>
/// Ascertains whether the window is in the list.
/// </summary>
/// <param name="rid">Runtime ID of the window.</param>
/// <returns>Index of the ID in the list, or -1 if it is not listed.</returns>
/// <remarks>
/// runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
/// </remarks>
private int RuntimeIdListed(int[] runtimeId, ArrayList runtimeIds)
{
    for (int x = 0; x < runtimeIds.Count; x++)
    {
        int[] listedId = (int[])runtimeIds[x];
        if (Automation.Compare(listedId, runtimeId))
        {
            return x;
        }
    }
    return -1;
}
''' <summary>
''' Handles window-closed events. Removes the window from the top-level window list.
''' </summary>
''' <param name="sender">Object that raised the event.</param>
''' <param name="e">Event arguments.</param>
''' <remarks>
''' runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
''' </remarks>
Private Sub WindowClosedHandler(ByVal sender As Object, ByVal e As AutomationEventArgs) 
    Dim windowEventArgs As WindowClosedEventArgs = CType(e, WindowClosedEventArgs)
    Dim runtimeIdentifiers As Integer() = windowEventArgs.GetRuntimeId()
    Dim index As Integer = RuntimeIdListed(runtimeIdentifiers, savedRuntimeIds)
    If index >= 0 Then
        savedRuntimeIds.RemoveAt(index)
        Console.WriteLine("Window closed.")
    End If

End Sub


''' <summary>
''' Ascertains whether the window is in the list.
''' </summary>
''' <param name="rid">Runtime ID of the window.</param>
''' <returns>Index of the ID in the list, or -1 if it is not listed.</returns>
''' <remarks>
''' runtimteIds is an ArrayList that contains the runtime IDs of all top-level windows.
''' </remarks>
Private Function RuntimeIdListed(ByVal runtimeId() As Integer, ByVal runtimeIds As ArrayList) As Integer 
    Dim x As Integer
    For x = 0 To runtimeIds.Count - 1
        Dim listedId As Integer() = CType(runtimeIds(x), Integer())
        If Automation.Compare(listedId, runtimeId) Then
            Return x
        End If
    Next x
    Return - 1

End Function 'RuntimeIdListed

Комментарии

Когда приложение получает событие закрытия окна, sender параметр обработчика событий нельзя использовать для получения сведений о закрытом окне, так как соответствующий элемент Майкрософт модель автоматизации пользовательского интерфейса больше недействителен. Используйте GetRuntimeId для сопоставления окна с известным идентификатором.

Применяется к