Je suis en train d'écrire une petite classe pour conduire des tests d'intégration d'une application de formulaire gagnant. La classe de pilotes de test a accès au formulaire principal et recherche le contrôle qui doit être utilisé par son nom, et l'utilise pour conduire le test. Pour trouver le contrôle, je traverse l'arborescence Control.Controls. Cependant, je suis coincé quand je veux arriver aux contrôles dans une fenêtre de dialogue (un formulaire personnalisé affiché comme une boîte de dialogue). Comment puis-je l'obtenir?Comment puis-je obtenir la référence au formulaire modal actuellement actif?
Répondre
Vous pouvez obtenir une référence au formulaire actuellement actif en utilisant la propriété statique Form.ActiveForm
. Editer: Si aucun Form
n'a le focus, Form.ActiveForm
renverra null
.
Une façon de se déplacer est d'utiliser la collection Application.OpenForms
et récupérer le dernier élément , sorcière sera la Form
active lorsqu'elle est affichée à l'aide ShowDialog
:
// using Linq:
lastOpenedForm = Application.OpenForms.Cast<Form>().Last()
// or (without Linq):
lastOpenedForm = Application.OpenForms[Application.OpenForms.Count - 1]
Je ne suis pas sûr si vous pouvez accéder aux contrôles sur une boîte de dialogue pré-construit; ils semblent tous emballés ensemble. Vous aurez peut-être plus de chance de construire votre propre boîte de dialogue qui fera ce que vous voulez. Ensuite, vous pouvez accéder aux .Controls à l'intérieur de celui-ci.
Oui, j'utilise des formulaires personnalisés qui s'affichent sous la forme d'une boîte de dialogue. – Grzenio
me corrigera si je me trompe, Cependant, il semble que vous essayez d'accéder aux contrôles sur le formulaire de dialogue quand ce n'est pas tout à fait possible. Ce que je veux dire par là, ShowDialog
va "retarder" le thread sur lequel le formulaire a été créé et ne retournera pas le contrôle à l'application (ou à votre classe de test) jusqu'à ce que le traitement de ShowDialog
soit terminé, auquel cas votre code d'utilisateur continuerait sur son chemin. Essayez d'accéder ou de manipuler les contrôles à partir d'un thread séparé (dans ce cas, refactorisez la classe de pilote de test pour générer un thread distinct pour chaque nouveau formulaire qui doit être affiché et testé).
Oui, j'ai créé un nouveau thread, donc ce n'est pas bloqué. Je cherchais la réponse fournie par @Julien Poulin – Grzenio
Aussi, si vous disposez du formulaire parent, la méthode dispose sera exécutée même avec un formulaire modal actif. C'est possible, vous voudrez peut-être accéder au formulaire modal alors. – mike100111
- 1. Comment repeindre un formulaire parent alors qu'un formulaire modal est actif?
- 2. Obtention de la couleur de la légende du formulaire actif
- 3. Comment obtenir une référence à la boîte Java Swing JDialog actuellement affichée?
- 4. Comment puis-je trouver actuellement sélectionné (ou actif) Row dans un UltraGrid
- 5. Utilisation de powercfg pour dupliquer le schéma d'alimentation actuellement actif
- 6. Comment obtenir une référence au ItemsPanel d'un ListBox Silverlight
- 7. Comment obtenir la liste des rôles pour l'utilisateur actuellement connecté
- 8. Access 2003 VBA Obtenir le filtre actif?
- 9. Comment appeler si le formulaire n'est pas actif?
- 10. Comment faire pour modal système de formulaire en utilisant C#?
- 11. Comment puis-je obtenir le ChildWindow actif d'une application?
- 12. ouvrir le dialogue modal jquery au chargement de la page
- 13. FTP passif au lieu de FTP actif
- 14. Comment ajouter une référence au code source d'une référence d'assembly?
- 15. Comment obtenir une liste de tous les assemblages actuellement chargés?
- 16. Comment obtenir le rôle de l'utilisateur actuellement connecté dans wordpress?
- 17. case Modal + case + biscuit
- 18. Comment utiliser un formulaire Modal jQuery UI de la liste ASP.Net MVC Page
- 19. Formulaire Modal en asp.net mvc RC en utilisant jquery
- 20. Comment obtenir le parent du formulaire d'une entrée?
- 21. Kerberos de Java - Obtenir un objet pour l'utilisateur actuellement authentifié
- 22. Comment accrocher la réponse json au formulaire html via jquery?
- 23. la difficulté à obtenir une référence à un ModalPopupExtender en utilisant javascript
- 24. Comment obtenir une référence à l'UITabBar dans une application iPhone
- 25. Obtention d'une référence au délégué UIApplication
- 26. Comment obtenir une référence au module dans lequel quelque chose est implémenté depuis cette implémentation?
- 27. Comment obtenir une référence au fichier jar produit par Gradle build?
- 28. Comment puis-je faire référence à la ligne actuellement mise à jour par la mise à jour?
- 29. MVVM - La vue doit-elle faire référence au Presenter/ViewModel?
- 30. Obtenir des informations sur Wikipedia - comment obtenir un formulaire HTML?
Il semble retourner null quoi que je fasse. Des idées? – Grzenio
Réponse mise à jour lorsque aucun formulaire n'est actif –
Application.OpenForms fonctionne, acclame – Grzenio