Bonjour à tous,
depuis mon menu, sur les événements Click, j'appelle des formulaires de la façon suivante :
Hors, Je voudrais construire mon menu dynamiquement et ainsi pouvoir changer mes libellés facilement sans avoir à recompiler et redéployer ma solution. j'ai paramétré dans une table paramètre, les libellés du menu ainsi que les noms des formulaires associés. Mais je ne trouve pas comment adresser mon formulaire de façon dynamique, en ayant le nom dans une string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void majClientToolStripMenuItem_Click(object sender, EventArgs e) { Maj_client frm = new Maj_client(); frm.Show(); } private void majProdToolStripMenuItem_Click(object sender, EventArgs e) { Maj_produit frm = new Maj_produit(); frm.Show(); } etc...
par exemple, pour simplifier ma demande :
string nomprog = "Maj_client";
nomprog frm = new nomprog();
frm.Show();
(bien évidement cela ne marche pas ! il faut que j'arrive à typer ma string en type Form ...)
J'ai vu qu'il existe une fonction System.Activator.CreateInstance mais je ne sais pas si c'est adéquate dans mon cas ?
et aussi une classe Control, j'ai essayé la manière suivante :
mais ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 string nomprog = "Maj_client"; Control[] C = Controls.Find(nomprog, false); if (C.GetLength(0) != 0) { Form frm = (Form)C[0]; frm.Show(); }
Votre aide serait la bienvenue !
Partager