Affichage des form en CSHARP

Fermé
adme Messages postés 32 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 20 septembre 2011 - 20 sept. 2011 à 22:02
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 - 21 sept. 2011 à 23:03
Bonjour,

Voici mon probleme. J'ai un programme en csharp avec des menus et des sous-menus. Je ne veux pas qo'on affiche deux meme fenetres en meme temps. SVp aide moi..Merci

3 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
21 sept. 2011 à 20:16
Vérifie si une instance de ton processus existe déjà :)

Un petit exemple pour travailler avec les process :
https://stackoverflow.com/questions/2468994/how-to-detect-that-a-process-is-started-using-c-sharp-codewindows-service
0
Utilisateur anonyme
21 sept. 2011 à 20:16
C'est plus facile et plus correct d'écrire C#
0
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
21 sept. 2011 à 23:03
je pense plutôt qu'il ne souhaite pas ouvrir plusieurs fois la même form.
Car avec la méthode des process il empeche l'ouverture de son application plusieur fois mais des fenetres interne à l'application.
Pour empecher l'affichage d'une fenetre plusieur fois tu peut utiliser le pattern singleton.

ce qui doit donner de tête
// Dans le fichier form2.cs
private Form2()
        {
            InitializeComponent();
        }

        private static Form2 _instanceUnique = null;
        public static Form2 InstanceUnique()
        {
            return _instanceUnique ?? (_instanceUnique = new Form2());
        }


//dans le fichier form2.designer.cs rajouter la derniere ligne _instanceUnique
protected override void Dispose(bool disposing)
        {
            if (disposing && components != null)
            {
                components.Dispose();
            }
            base.Dispose(disposing);
            _instanceUnique = null;
        }


// Pour appeler la form
Form2 frm = Form2.InstanceUnique();
            frm.Show();
0