私はwinフォームアプリケーションの統合テストを駆動するための小さなクラスを作成しています。テストドライバクラスは、メインフォームへのアクセス権を持ち、名前で使用する必要があるコントロールを検索し、テストを実行するために使用します。私はControl.Controlsツリーを横断しているコントロールを見つけるために。しかし、私はダイアログウィンドウ(ダイアログとして表示されたカスタムフォーム)でコントロールに移動したいときに動かなくなってしまいます。どうすればそれを保持できますか?現在アクティブなモーダルフォームへの参照はどのように取得できますか?
答えて
静的Form.ActiveForm
プロパティを使用すると、現在アクティブなフォームへの参照を取得できます。
編集:Form
にフォーカスがない場合、Form.ActiveForm
はnull
を返します。これを回避するために
一つの方法は、ShowDialog
使用して表示されたとき、魔女はアクティブForm
になりますApplication.OpenForms
コレクションを使用して最後アイテムを取得することです:私が間違っている場合
// using Linq:
lastOpenedForm = Application.OpenForms.Cast<Form>().Last()
// or (without Linq):
lastOpenedForm = Application.OpenForms[Application.OpenForms.Count - 1]
事前に作成されたダイアログボックスのコントロールにアクセスできるかどうかはわかりません。彼らはすべて一緒にパッケージ化されているようだ。あなたは自分が望むことをするあなた自身のダイアログボックスを構築することが、より多くの運を持つかもしれません。次に、内部の.Controlsにアクセスできます。
はい、私はダイアログボックスとして表示されるカスタムフォームを使用しています – Grzenio
が私を修正し、しかし、ダイアログフォーム上のコントロールにアクセスしようとしている可能性が高い場合は、あたかも可能です。
ShowDialog
は、ShowDialog
がフォームが作成されたスレッドを「ホールドアップ」し、ShowDialog
が処理を完了するまでアプリケーション(またはテストクラス)に制御を返しません。この場合、ユーザーコードその道のりで続けるだろう。
コントロールを別のスレッド(この場合は、テストドライバクラスをリファクタリングして、表示およびテストする必要がある新しいフォームごとに別のスレッドを生成する)からアクセスまたは操作してみてください。
はい、新しいスレッドを作成したので、ブロックされません。 @Julien Poulinが提供する答えを探していた – Grzenio
また、親フォームを処分する場合、disposeメソッドはアクティブなモーダルフォームでも実行されます。可能であれば、モーダルフォームにアクセスすることができます。 – mike100111
- 1. 現在のHttpRuntimeへの参照はどのように取得できますか?
- 2. 現在のオブジェクトへの参照を取得する
- 3. 現在のKeyboardFocusManagerへの参照を取得する
- 4. アクティビティ内の現在アクティブなすべてのフラグメントの参照を取得する方法はありますか?
- 5. PHPはどのように現在のドキュメントを参照していますか?
- 6. アンドロイドで現在のビュー全体をどのように参照しますか?
- 7. 現在のキャレット位置はどのように取得できますか?
- 8. Cで現在アクティブなウィンドウタイトルを取得
- 9. バッチスクリプトの実行時に現在アクティブなウィンドウを取得するにはどうすればよいですか?
- 10. sbtサブプロジェクトbuild.sbtファイルで現在のプロジェクトへの参照を取得する方法
- 11. OCamlの現在のモジュールへの参照
- 12. 、どのように私はENTRYID与えappointmentItemへの参照を取得することができ、など
- 13. 現在のiframeの本体参照をJavaScriptで取得する
- 14. OpenCVの現在のアクティブなウィンドウにハンドルを取得します
- 15. JSから現在のアクティブなタブを取得します。
- 16. イオンでapp.module内の現在アクティブなタブ名を取得するにはどのように3
- 17. どのようにして、オブジェクトが別の(および参照されていない)アセンブリにあるクラスへの参照を取得できましたか?
- 18. 現在アクティブなアプリケーション名を取得
- 19. IPythonの現在のInteractiveShellインスタンスへの参照を取得する(%exitをフックしようとしている)
- 20. Xcode 4:AppleScript経由で現在アクティブなファイルへのパスを取得できますか?
- 21. Javaの現在のフレームへの参照を取得する方法はありますか?
- 22. オブジェクトはJavaScriptでどのように参照できますか?
- 23. Angular 2のルータで現在のルートのコンポーネントへの参照を取得しますか?
- 24. いくつかのクラスでアクティブな(現在の)UserContextをどのように達成できますか?
- 25. どのViewControllerが現在アクティブかをどのように知るのですか
- 26. サービスはonBind中にアクティビティへの参照を取得できますか?
- 27. コンテナのIDからGoogleマップオブジェクトへの参照を取得するにはどうすればよいですか?
- 28. TensorFlowで現在アクティブなtf.variable_scopeを取得する方法は?
- 29. CALでは、モジュールインスタンスへの参照を取得するにはどうすればよいですか?
- 30. ASP.NETでデフォルト以外のProfileBaseへの参照を取得するにはどうすればよいですか?
私は何をしてもnullを返すようです。何か案は? – Grzenio
フォームにフォーカスがないときに更新されました –
Application.OpenForms works、cheers – Grzenio