Obtenir la liste des fenêtres ouvertes forme instance qui est exécutée à partir de différents assemblée
J'ai un " loader avec l'application qui charge un menu et lorsque l'utilisateur clique sur le menu image, bouton, une liste de la vue s'ouvre sur la base du texte
(if text = employee)
(Go to class A)
(Go to class B)
...
...
(Show List View Window)
si il clique à nouveau sur le même bouton, il s'ouvre de nouveau, je tiens à l'en empêcher.
j'.e, mais ceci pour une application WPF
OriginalL'auteur abmv | 2008-12-23
Vous devez vous connecter pour publier un commentaire.
Si vous voulez une liste des formes ouvertes, c'est-à
Application.OpenForms
. Vous pourriez itération sur ce, à l'aide de GetType() et la vérification de la.Assembly
pour trouver ceux d'une autre assemblée. Au-delà de ça, je ne suis pas toute clair sur la question...Si vous voulez juste pour suivre les formes que vous avez ouvert vous-même, puis le cache de cette instance. Ou si vous utilisez la "propriété", vous pouvez simplement vérifier par nom:
Application.OpenForms sera de retour 0 je.e puisqu'il est le chargeur de
Je ne suis pas sûr de savoir pourquoi votre formulaire principal étant simplement un chargeur devrait affecter le résultat ici... si le moteur d'exécution sait sur la forme, il doit apparaître dans l'Application.OpenForms - sauf si vous voulez dire qu'il est en cours d'exécution dans un autre processus - est-ce que c'est?
le chargeur n'est pas un formulaire principal de son un exe qui affiche une INTERFACE graphique (menu) et n'a aucune idée de ce que c'est de l'affichage. j'ai donc besoin d'obtenir l'exécution de l'assemblage, mais alors quoi? Il y a un peu d'abstraction impliqués dans le code...est-il possible de trouver des formes d'une autre manière ?
OriginalL'auteur Marc Gravell
OriginalL'auteur joakim
Un autre exemple simple
OriginalL'auteur daniele3004
Vous pouvez utiliser un modèle de Commande. Le chargeur assemblée de recherche pour les commandes dans les assemblys chargés.
Pour chaque commande le chargeur de créer l'élément de menu ( ou autre chose, vous voulez ), et cliquez sur événement se déroulera le béton de commande.
La commande doit savoir si doit être créé à nouveau formulaire ou utilisé une partie déjà existante.
OriginalL'auteur TcKs
Marque Garvell réponse m'a aidé à comprendre ce que je dois faire, mais il faut ajuster pour WPF.
(Dans mon cas, j'ai voulu fermer toutes les fenêtres ne sont pas détenues par le principal lorsqu'il se ferme, mais le principe est le même.)
Pourrait-ce être ajusté? La nouvelle fenêtre en cours? Oui, il suffit de définir ses propriétés.
désolé je voulais dire à wpf ?
Oh, à droite. C'est ce que j'ai fait pour WPF. Je ne pense pas que l'application WPF a la
OpenForms
bien, donc je suis passé àApplication.Current.Windows
OriginalL'auteur Matt Ellen