Fermer les formulaires

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 552 fois - Téléchargée 16 fois

Contenu du snippet

Ferme 1 ou tous les formulaires ouverts dans un application vb.net.
Cette procédure est appelée si le Form.KeyPreview des fromlulaires est à true.
Dans mon code, seules les touches F9 et Fin sont opérationnelles, mais on peut traiter n'importe quelles autres touches.

Source / Exemple :


Public Sub Papi_KeyCode(ByVal QuelleTouche As System.Windows.Forms.Keys, ByVal QuelForm As Form)
        '120=F9
        '35=fin'
select case QuelleTouche
Case 120
QuelForm.Close()
Case 35

            Dim F(20) As Form 'nombre maximun de formulaires ouverts'
            Dim Nb As Integer = My.Application.OpenForms.Count
            For i = 1 To My.Application.OpenForms.Count - 1
                'on ne prend pas en compte le formulaire 0 car c'est celui qui en général reste toujours affiché'
                F(i) = My.Application.OpenForms.Item(i) 'on enregistre les formulaires ouverts'
            Next
            Dim Rep As String = InputBox("Voulez_vous fermer les " & Nb - 1 & " fenêtres ouvertes", "Nom du programme, "Oui")
            If Rep = "Oui" Then
                For i = 1 To Nb - 1
                    F(i).Close()
                    F(1).Dispose()
                Next
            End If
      end select
    End Sub

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
14 mars 2012

Compris...
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
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é ):
Messages postés
2
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
14 mars 2012

ADN56 --- J'ai l'impression que ton code ferme aussi le formulaire principal... Comment fermer tous les autres tout en le laissant lui ouvert?
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
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
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
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
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.