Auf Englisch lesen

Teilen über


WindowClosedEventArgs.GetRuntimeId Methode

Definition

Ruft den Benutzeroberflächenautomatisierung Laufzeitbezeichner (ID) ab, der diesem Ereignis zugeordnet ist.

C#
public int[] GetRuntimeId ();

Gibt zurück

Int32[]

Die Benutzeroberflächenautomatisierung Laufzeit-ID des Fensters, auf dem das Ereignis ausgelöst wurde.

Beispiele

Im folgenden Beispiel ermittelt der Handler für das fensterfreie Ereignis, ob sich die Laufzeit-ID des geschlossenen Fensters in einer Liste der IDs geöffneter Fenster befindet. Wenn die Laufzeit-ID vorhanden ist, wird sie aus der Liste entfernt.

C#
/// <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;
}

Hinweise

Wenn Ihre Anwendung ein fensterfreies Ereignis empfängt, kann der Parameter des Ereignishandlers nicht verwendet werden, um Informationen über das Fenster abzurufen, das geschlossen ist, da das sender entsprechende Microsoft-Benutzeroberflächenautomatisierung-Element nicht mehr gültig ist. Verwenden Sie die Verwendung GetRuntimeId , um dem Fenster mit einem bekannten Bezeichner zu entsprechen.

Gilt für

Produkt Versionen
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7