Bonjour à tous,

depuis mon menu, sur les événements Click, j'appelle des formulaires de la façon suivante :
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...
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.

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 :

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();
}
mais ça ne marche pas.

Votre aide serait la bienvenue !