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

Windows Forms Discussion :

différence Croix rouge, Form.close()


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut différence Croix rouge, Form.close()
    Bonjour à tous, je code une application en C#, et pour pouvoir gérer correctement mes transactions sql, j'aimerais pouvoir faire une différence entre une fermeture du Windows Form, avec la croix rouge, et la fermeture du Windows Form par moi-même à l'aide de la "fonction" close.

    J'avais espéré pouvoir utiliser ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void AddCommentSuite_FormClosed(Object sender, FormClosedEventArgs e)
            {
                tr.Rollback();
     
            }
    Mais je rentre dedans dans les deux cas, or je ne veux pas RollBacker quand je ferme le windows form moi-même, car cela signifie que tout c'est bien passé...

    Des idées ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 179
    Points : 4 493
    Points
    4 493
    Par défaut
    tu déclares un boolean que tu set à True /False en fonction du cas normal
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Et comment je fais pour savoir de quel cas je viens ?

  4. #4
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    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
    class TaClass
    {
       bool _exit = false;
     
       void ButtonClick(..)
       {
          _exit = true;
          Close();
       }
     
    private void AddCommentSuite_FormClosed(Object sender, FormClosedEventArgs e)
            {
                if(!_exit)
                    tr.Rollback();
     
            }
    }

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 202
    Points : 28 104
    Points
    28 104
    Par défaut
    Ça serait plutôt l'évènement FormClosing plutôt que l'évènement FormClosed.

    Ceci dit je ne suis pas sur que les 2 actions puissent être différenciées, regarde l'aide sur le FormClosing.

    Par contre le coup du Rollback, j'ai pas bien compris. Le rollback, on le fait quand il y a une erreur dans la requete, pourquoi à la fermeture de l'écran ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    En faite je fais des requêtes d'ajout dans la BDD qui doivent avoir du sens sur plusieurs Windows Forms qui s'ouvrent en mode pop up quoi. Donc si jamais le gars n'a pas envie de renseigner une pop up, et qu'il ferme avec la croix rouge je dois Rollbacker...

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Pourquoi ne pas masquer la croix rouge et faire un bouton "Annuler" ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Le code indiqué par meziantou me semble être une solution correct avec les modifications suivantes:

    1. C'est l'evenement formclosing et non formclosed qui devrait être utilisé.
    2. Le traitement de rollback devrait être contenu dans un Try...Catch qui empeche la fermeture du formulaire en cas d'erreur (à l'aide de l'arguement e.Cancel).

    Il faut aussi ne pas oublier qu'au final il est toujours possible de quitter le formulaire, application en terminant de façon sauvage le processus. Il faut donc penser à tester la viabilité de ton rollback dans ce genre de situation.

    P.S. Dans l'evenement FormClosing, il y a un argument CloseReason indiquant la raison de la demande de fermeture du formulaire. Il y a peut être moyen d'utiliser cette information à la place du Boolean. A vérifier si cela te permet effectivement de différencier tes différents scénarios. (La solution du boolean étant rapide et pas lourde à mettre en place je la recommande !)

Discussions similaires

  1. désactiver la croix rouge dans une form
    Par sky88 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2013, 16h34
  2. Réponses: 8
    Dernier message: 20/05/2011, 16h52
  3. Réponses: 12
    Dernier message: 01/06/2010, 16h57
  4. [VB.NET] La croix rouge de fermeture ne déclenche pas close
    Par LaChips dans le forum Windows Forms
    Réponses: 10
    Dernier message: 07/04/2006, 16h45
  5. [C#][Form.Closing]
    Par groskek dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/10/2005, 14h24

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