FERMER LES FORMULAIRES

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 16 mai 2011 à 18:39
francesfac Messages postés 2 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 14 mars 2012 - 14 mars 2012 à 08:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53167-fermer-les-formulaires

francesfac Messages postés 2 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 08:13
Compris...
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
13 mars 2012 à 19:24
bha à vrai dire j'en sais rien, j'ai pas cherché, car c'est pas MON code mais celui de jvuillaume et perso j'ai pas le besoin de fermer plusieurs forms d'un coup donc je me suis jamais penché sur la question, j'ai juste "traduit" un peu mieux son code de base. navré ):
francesfac Messages postés 2 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 14 mars 2012
13 mars 2012 à 18:12
ADN56 --- J'ai l'impression que ton code ferme aussi le formulaire principal... Comment fermer tous les autres tout en le laissant lui ouvert?
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
23 mai 2011 à 13:51
Bonjour,

pour moi le principe du code débutant est bien là

pour étoffer un peu tu pourrais tester si les formulaires peuvent être fermés (gérer un cancel) car si des boites de dialog d'enregistrement sont ouvertes tu perdras toutes tes données

également inclure une gestion d'erreur, au cas ou un module était en train de fermer un des formulaires au moment où tu appuies sur la touche car il se peut qu'il y ait interaction à ce moment là tu auras dans ta variable F un formulaire qui n'aura plus de handle donc erreur d'exécution

bon courage
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
18 mai 2011 à 18:38
JE rejoins en effet TebeCo sur le fait que ton code soit un snippet, maintenant je profite tout de même de l'occasion pour demander des infos à tebeco.
1-Une collection d'objet, pourquoi pas avec des forms ?
2-F(i).Dispose() à la fin de la boucle le tableau F ne continet plus que l'item 0, donc il est vide ?
3-Un événement de la couche ui sans aucune remontée ou test en couche métier ... là dsl je suis trop débutant pour te suivre, si tu as un exemple je suis preneur ;)
4-for i=1 to nb-1, quoi ? le i as integer ? pas besoin i hérite de Nb (en explicit et strict cela marche sans soucis)
5- Il oubli le premier form (oui c'est fait expret, main form)
mais tu veux peut être dire que l'on est pas sur que cela soit bien la main form ? j'ai un peu de mal à te suivre, j'ai juste voulu écrire un peu plus logiquement son code, mais sans mettre vraiment pencher dessus ;)
cordialement et merci des explications
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
18 mai 2011 à 09:43
Désolé pour la correction automatique du téléphone...
Pour en revenir a ton Code
Ce n'est pas une site ou on jete 10 lignes de code ... On attend plutôt un vrai projet, des explication, justification, choix technique

Au passage voir un Array de formulaire est pour le moins improbable dans n'importe quel projet propre. En général en winform le pattern que tu utilises, bien souvent MVC, fait que tu ne regroupe pas tes objet de la sorte.

L'array n'est jamais vidé ...

Etc.

Je vois que ton Code répond directement a un événement de la couche ui sans aucune remontée ou test en couche métier ...

for i=1 to n-1

Y a rien qui te choques ?
Ou t'as oublié "Option Binary" et tu oublis le premier form
Ou alors tu va publier le dernier form
Ou alors tu n'a fait exprès mais vu que tu ne fait aucun test d'intégrité sur ton Close c'est de la roulette russe
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
18 mai 2011 à 08:02
oula faut faire un xor pour lire lol, peux tu expliquer et devellopper ton "A éviter pour pas mal de raison" car c'est bien de dire attention, mais c'est mieux de l'expliquer ;) cordialement
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
18 mai 2011 à 02:21
Code a supprimé en demandant dr le placer sur le site adaptez : c'est un snippet pas une source ...
Le Code inclus pas Mal de bas practices et anti pattern
A éviter pour pas Mal de raison ...
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
16 mai 2011 à 18:39
bonsoir, si je puis me permetre j'aurais vu un truc dans le style :

Dim Nb As Integer = My.Application.OpenForms.Count
Dim F(Nb) As Form 'nombre de formulaires ouverts'

If MsgBox("Tout fermer ?", MsgBoxStyle.OkCancel, "tout fermer ?") = MsgBoxResult.Ok Then
For i = 1 To Nb - 1
F(i) = My.Application.OpenForms.Item(i)
F(i).Close()
F(i).Dispose()
Next
End If

cordialment, bonne prog
Rejoignez-nous