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();
}
A voir également:
Lancer une feuille fille mdi une et une seule fois
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,
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.
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