1

自動化を行うためにコード化されたUIを使用しています。テストケース用に開いているウィンドウの数を数える必要がありますが、その方法がわかりません。findを使用して、applicationundertestを取得し、子供たちを歩いてみましたが、ウィンドウはそれに属していないようです。

誰もがこれを経験しましたか?

4

2 に答える 2

1

ほとんどのUIフレームワークには、開いているウィンドウのコレクションがあります。

Winforms:

int count = Application.OpenForms.Count;

このアプリケーションが所有する現在開いているすべてのフォームを含むFormCollection。

WPF:

 int count = Application.Current.Windows.Count;

ウィンドウがユーザーインターフェイス(UI)スレッドでインスタンス化されるとすぐに、ウィンドウ参照がWindowsに自動的に追加されます。ワーカースレッドによって作成されたウィンドウは追加されません。ウィンドウ参照は、Closingイベントが処理された後、Closedイベントが発生する前に自動的に削除されます。

于 2013-03-05T23:12:36.093 に答える
0

メインインスタンスで静的intを作成し、それをすべてのフォームコンストラクターでカウントアップし、FormClosingイベントでカウントダウンするだけです。

多分この短いコードは役に立つでしょう

this.Load += delegate { mainInstance.myCount++; };
this.FormClosing += delegate { mainInstance.myCount--; };
于 2013-03-05T22:58:46.550 に答える