Lancer une feuille fille mdi une et une seule fois

Résolu
sygmo Messages postés 19 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 5 mars 2018 - 3 avril 2008 à 19:53
anadeveloppeur Messages postés 153 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 21 février 2019 - 17 juil. 2009 à 12:25
Bonjour, je developpe une application sous c# (Csharp),dans laquelle j'utilise la technique des MDI. Sur mon formulaire MDI pere, j'ai crée une barre de menu .Le menu Fichier comprend le sous-menu ouvrir qui lui comprend les sous menus "medecin",patient"....
chaque fois que je fais un click sur le sous menu "medecin", le formulaire correspond (formulaire medecin) s'affiche. Le formulaire s'affiche autant de fois que j'effectue de click dans le sous menu "medecin". Alors je demande votre aide pour remedier à ce problème, afin qu'un formulaire puisse s'afficher une et une seule fois quelque soit le nombre de click dans le sous-menu.
Merci et a bientôt.

exemple de code dans le sous menu medecin
 private sub mnedecin_click()
{
  frmmedecin fm = new frmmedecin(); // instanciation du form medecin
fm.mdiparent = this; // le fm est la fille de frmprincipal
fm.Show();
}

 

6 réponses

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
4 avril 2008 à 10:47
en reflechissant un peu tu pourrais trouver la reponse par toi meme...

je vais te donner quelques indices:
dans ta methode, tu instancie une nouvelle form medecin a chaque click, ce que signifie que tu CREE une nouvelle form a chaque click
donc la solution a ton probleme srait d'avoir une variable unique de type form dans laquelle tu instancierais a volonté ta form medecin, si elle n'est pas deja créée,

reflechis y bien, tu devrais trouver

Nul ne devient grand par la guerre...
3
anadeveloppeur Messages postés 153 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 21 février 2019
16 juil. 2009 à 16:14
Bonjour.
Avez-vous résolu le problème? Sincèrement j'y suis bloqué !
Merci pour toute aide.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
16 juil. 2009 à 16:36
Salut

Dans ta form parente, garde une référence sur ta sous form et regarde si elle est nulle ou non

class FormParente
{
    private ClasseSSForm _ssForm1 = null;
    
    private MonBouton_Click(object sender, EventArgs e)
    {
        if(_ssForm1 == null)
        {
            _ssForm1 = new ClasseSSForm();
            _ssForm1.MdiParent = this;
        }
        _ssForm1.Show();
    }
}


Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
anadeveloppeur Messages postés 153 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 21 février 2019
16 juil. 2009 à 17:15
Bonjour.
J'ai déjà pensé à cette solution, mais le problème c'est que lorsque le ferme la fenêtre fille, quand je veux l'ouvrir une autre fois ça ne marche pas, parce que l'objet n'est pas null :S
Merci pour l'aide, je cherche encore une solution pour contourner ce problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anadeveloppeur Messages postés 153 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 21 février 2019
16 juil. 2009 à 17:25
Voilà j'ai résolu le problème, c'est un peu bête et compliqué mais l'essentiel c'est que ça marche ;-)
L'objet qui représente le formulaire fils dans le formulaire parent est déclaré publique et statique, pour qu'on puisse lui affecter la valeur null depuis le formulaire fils dans la zone de l'évènement "formclosed".
Merci krimog
PS : belle citation
0
anadeveloppeur Messages postés 153 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 21 février 2019
17 juil. 2009 à 12:25
Bon voilà, pour illustrer le l'explication que j'ai donné en dessus, j'ai déposé un petit exemple ici
Cordialement.

SimO TM
0
Rejoignez-nous