Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fermeture de toues les fenêtres après déconnexion

    23 avril 2019 à 14:12:14

    Salut à tous! Je développe une application avec c#.  J'ai plusieurs form Windows et une form principale avec un bouton déconnexion. J'aimerai que lorsque je clique sur mon bouton déconnexion : toutes les fenêtres ouvertes se ferment et me renvoyer sur la page de connexion.

    J'ai essayé

    Form f = new Form(); 

    f.Close();

    mais si j'ai plus de 10 fenêtres je crois qu'il y a une méthode pour ça.

    Merci de bien vouloir m'aider.

    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2019 à 15:13:52

      Salut, 

      Est ce que tu as regardé du côté de Application.Exit ?

      • Partager sur Facebook
      • Partager sur Twitter
        23 avril 2019 à 16:55:34

        Oui Application.Exit vas fermer le programme entier. J'aimerai laisser la page de connexion ouverte.
        • Partager sur Facebook
        • Partager sur Twitter
          23 avril 2019 à 17:05:30

          Ah d'accord je comprend mieux. En effet Application.Exit n'est pas adapté.

          Une solution naïve à ton problème peut être de garder l'ensemble de tes forms dans une collection statique et de boucler sur cette collection pour fermer les différents forms lors du clic sur "Deconnexion".

          Je pense que ca fonctionnera mais je ne sais pas si on peut considérer ca comme "très propre" comme manière de faire. Il y a certainement mieux

          • Partager sur Facebook
          • Partager sur Twitter
            25 avril 2019 à 11:36:41

            Faire en sorte que les "sous fenêtre" enregistrent une fonction de callback sur l'évènement de "déconnexion" publié par la fenêtre principale, ou encore mieux, qu'elle s'enregistre sur un évènement équivalant mais publié par une classe de la couche métier de l’application.
            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              25 avril 2019 à 12:03:17

              Ah, quand je parlais d'un truc plus propre, je savais que bacelar allait passer par là !

              Ca serait possible que tu détailles un peu plus ou que tu donnes un exemple ? Ca m'interesse

              • Partager sur Facebook
              • Partager sur Twitter
                25 avril 2019 à 12:52:22

                On doit découpler l'affichage du code métier.

                Donc, chaque Form doit avoir accès à la couche métier via un objet quelconque de la couche métier, passé en paramètre de son constructeur, par exemple.

                Les forms semblent devoir se fermer s'il y a déconnexion, qui n'est pas un évènement "graphique", donc, c'est l'objet métier qui doit déclarer un "event" déconnexion où tous les composants ayant besoin de réagir à cet évènement peuvent d'enregistrer.

                Le bouton "déconnexion" de la "form principale" est cliqué, c'est la couche métier qui se charge des actions, et quand elle a fini, elle déclenche l'event de déconnexion => tous les intéressés sont prévenus et font leurs actions respectives.

                • Partager sur Facebook
                • Partager sur Twitter
                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                Fermeture de toues les fenêtres après déconnexion

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown