IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

WinForm qui ne veut pas se fermer [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut WinForm qui ne veut pas se fermer
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre pour l'instant, je fais un petit programme en WinForm assez basique avec VS2015 Community, quand je le lance (avec F5) il fonctionne correctement sauf que si je clique sur la croix, ou que j'utilise 'alt+F4', rien ne se passe!
    Il refuse de se fermer!

    Pourtant j'ai regardé dans la FAQ et mon 'program.cs' est ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace MEF_PSA
    {
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.ApplicationExit += new EventHandler(Application_Exit);
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MEF_PSA());
            }
     
            private static void Application_Exit(object sender,System.EventArgs e)
            {
                MessageBox.Show("Fin du programme...");
            }
        }
    }
    Je me rappelle avoir eu le problème en vb.net et j'avais résolu ça en enlevant tous les contrôles système et en mettant mon propre bouton "quitter". Mais là j'aimerais bien faire ça propre!!

    Je suis ouvert à toute suggestion...

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    De quel type de base est le MEF_PSA de Il doit être du type de base Form, et normalement pas de soucis ...

    D'ailleurs j'aurais géré l'event FormClosing de la Form MEF_PSA pour afficher un message à l'utilisateur plutôt que le Application.ApplicationExit...

    J@ck.

  3. #3
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Oui "MEF_PSA" est bien du type Form voici sa déclaration (auto-générée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class MEF_PSA : Form
    et j'ai aussi un FormClosing:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            private void MEF_PSA_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (accesBDD.maConnection.State==ConnectionState.Open)
                {
                    accesBDD.maConnection.Close();
                }
     
                //e.Cancel = false;
                //this.Close();
     
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
    les parties en commentaires ont été essayées et ne marchent pas...

    l'utilisation du Application.Exit vient de ce que j'ai lu dans la FAQ

  4. #4
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    J'ai fais quelques tests supplémentaires, je reviens pour préciser un peu plus...

    Voici mon (magnifique ) Form:
    Nom : Capture.JPG
Affichages : 223
Taille : 39,8 Ko

    En fait, tant que je n'ai pas sélectionné les fichiers ET que je n'ai pas cliqué sur "Extraction", rien ne se passe, mais une fois que j'ai fais tout ça, si je clique sur la croix, il veut bien se fermer...

    Pourtant les boutons sous tous sur des évènements "click", je ne vois pas en quoi ce serait bloquant??

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    oulla bizarre tout ça

    et si tu mets un point d'arret dans le formClosing et que tu clique sur la croix rouge de ta form ? Est ce que tu passe dans le formClosing et continue en mode pas à pas pour voir si les lignes concernant le garbage collector te rendent la main.

    J@ck.

  6. #6
    Membre éclairé Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Par défaut
    Citation Envoyé par J@ckHerror Voir le message
    oulla bizarre tout ça

    et si tu mets un point d'arret dans le formClosing et que tu clique sur la croix rouge de ta form ? Est ce que tu passe dans le formClosing et continue en mode pas à pas pour voir si les lignes concernant le garbage collector te rendent la main.

    J@ck.
    Bonne idée ça! Je viens de le faire, donc à chaque clic sur la croix, je tombe bien dans l'évènement FormClosing, par contre c'est mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (accesBDD.maConnection.State==ConnectionState.Open)
    qui bloque!

    Tant que la BDD n'a pas été ouverte, il ne peut pas la fermer et me renvois dans le Form, mais c'est bizarre, vu mon test si elle n'est pas ouverte, il devrait continuer...

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Et donc c'est résolut ?

    Je capte pas pourquoi la ligne que tu donnes bloque ! D'ailleurs qu'entends tu par 'bloque' ? elle ne te rend pas la main ou si tu as une jolie exception ?

    J@ck.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41
  2. [VB.NET]un formulaire qui ne veut pas se fermer
    Par josyde2006 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/08/2006, 08h29
  3. JOptionPane qui ne veut pas se fermer!
    Par benthebest dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 29/12/2005, 22h05
  4. Un form ne veut pas se fermer
    Par Oluha dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 11h16
  5. un fichier qui ne veut pas être supprimé!!!!
    Par en_stage dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 22/10/2005, 01h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo