WindowClosedEventArgs.GetRuntimeId Metod

Definition

Hämtar UI Automation körningsidentifierare (ID) som är associerad med den här händelsen.

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

Returer

Int32[]

Det UI Automation körnings-ID för fönstret där händelsen skapades.

Exempel

I följande exempel kontrollerar hanteraren för den fönsterstängda händelsen om körnings-ID:t för det stängda fönstret finns i en lista över ID:t för öppna fönster. Om körnings-ID:t finns tas det bort från listan.

/// <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

Kommentarer

När programmet tar emot en fönstersluten händelse kan parametern sender för händelsehanteraren inte användas för att hämta information om fönstret som har stängts, eftersom motsvarande Microsoft UI Automation-element inte längre är giltigt. Använd GetRuntimeId för att matcha fönstret med en känd identifierare.

Gäller för