WindowClosedEventArgs.GetRuntimeId メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このイベントに関連付けられているUI オートメーションランタイム識別子 (ID) を取得します。
public:
cli::array <int> ^ GetRuntimeId();
public int[] GetRuntimeId ();
member this.GetRuntimeId : unit -> int[]
Public Function GetRuntimeId () As Integer()
戻り値
- Int32[]
イベントが発生したウィンドウのUI オートメーションランタイム ID。
例
次の例では、ウィンドウを閉じたイベントのハンドラーは、閉じたウィンドウのランタイム ID が開いているウィンドウの ID の一覧にあるかどうかを確認します。 ランタイム ID が存在する場合は、一覧から削除されます。
/// <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
対応する Microsoft UI オートメーション 要素が無効になったため、イベント ハンドラーのパラメーターを使用して閉じたウィンドウに関する情報を取得することはできません。 ウィンドウを既知の識別子と一致させるために使用 GetRuntimeId します。