Comment puis-je décharger de toutes formes ouvertes dans VB.NET?
Dans le moyen de conversion de code VB6 VB.NET j'ai besoin de remplacer le code suivant qui a l'intention de fermer toutes les formes restantes dans l'application.
'close all sub forms
For i = My.Application.OpenForms.Count - 1 To 1 Step -1
'UPGRADE_ISSUE: Unload Forms() was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="875EBAD7-D704-4539-9969-BC7DBDAA62A2"'
Unload(My.Application.OpenForms(i))
Next i
J'ai remplacé le Unload
fonction avec Close
(comme indiqué par TFM), mais le compilateur se plaint que OpenForms
n'est pas un membre de My.Application
.
Où puis-je consulter les formes ouvertes?
OriginalL'auteur brasskazoo | 2009-02-26
Vous devez vous connecter pour publier un commentaire.
La
OpenForms
propriété renvoie unFormCollection
. Vous pouvez parcourir la collection à traiter toutes les formes.C'est dans le VS 2008 de la documentation. msdn.microsoft.com/en-us/library/eh13dca9.aspx
Juste essayé en VB2008 EXpress Edition. Il fonctionne pour moi - fait exactement ce qu'il indique sur l'étain
Je ne vois aucune raison pour elle de ne pas travailler. Quelle erreur n'votre compilateur élever?
Je reçois une collection modifié exception parfois, quand vous le faites.
OriginalL'auteur Cerebrus
J'ai découvert cette solution,
...qui semble bien (si pas clair), et je vais pouvoir tester ça dès que je peux compiler tout le reste..
Vous pouvez simplement utiliser l'Application.OpenForms, comme d'habitude vous avez des Importations Système.De Windows.Les formes " de toute façon.
Ahh... c'est ce qui me manquait, l'importation!
Cela a fonctionné pour moi dans VS2010 lorsque les Importations Système.De Windows.Les formes n'ont pas
Merci, cela fonctionne mieux pour moi que le
For each
approche qui m'a donné une erreur comme le.close
modifié la collection il était une itération sur.OriginalL'auteur brasskazoo
Application.La sortie sera à peu près le même.
COMME je suppose que vous voulez fermer l'application, de toute façon si toutes les formes sont fermés.
+1 pour que souvent manqué le point. 😉
Le Formulaire.Fermé et la Forme.Clôture les événements ne sont pas soulevées lors de l'Application.Mode de sortie est appelé à quitter votre application. Si vous avez un code de validation dans l'un de ces événements qui doivent être exécutés, vous devriez appeler le Formulaire.Méthode Close pour chaque forme ouverte individuellement avant d'appeler la méthode Exit.
Aussi, si vous voulez jeter à l'utilisateur de retourner à un écran de connexion s'ils peuvent faire quelque chose comme frappé déconnexion, vous pourriez vouloir se décharger de toutes les formes, mais de ne pas quitter l'application.
OriginalL'auteur chrissie1
Le Mon.Application.OpenForms nécessite l'VB.Net application à utiliser l'infrastructure de l'Application (voir les Propriétés du Projet, l'Application, l'Application du Cadre).
Si vous n'avez pas l'utilisateur de l'Application du Cadre de, la place, vous pouvez utiliser l'Application.OpenForms (à partir du Système.De Windows.Les formes de l'espace de noms).
OriginalL'auteur Nick Wallace
Ont un look à la
Application.Windows
propriété.OriginalL'auteur Franci Penov