Création dynamique control à partir d'une string
Bonjour a tous,
Je voudrais créer des controls (TextBox, CheckBox, Button ...) à partir de string, les noms des controles sont stockés dans une ArrayList elle même remplit depuis un fichier.
j'ai trouvée des infos ici et ici mais rien à faire !!!
Je n'arrive ni à récupérer l'assembly de System.Windows.Forms.Controle ni à obtenir autre chose que null de la méthode GetType.
Pourtant cela semble possible ...
Je suis débutant en c#.
Merci d'avance.
Désolé mais je persiste !!!
Désolé de ne pas répondre plus vite mais j'ai 7 heures de décalage horaire avec la france !!!
Merci de ton conseil mais je préfère continuer dans cette voie plutôt que de faire un énorme switch case qui au final posera des problemes....
Je pense pouvoir résoudre mon principal probleme une fois que :
Code:
Type montype = Type.GetType("System.Windows.Forms.Button, System.Windows.Forms");
ne me retournera plus null, surtout que apparement cela devrait fonctionner en me renvoyant le type de controle à partir duquel je pourrais le construire.
Je persiste je lit je me documente il me semble tout de même que c'est comme sa que l'on avance.
Merci tout de même pour ta réponse theMonz.
J@ckHerror.
J'avance...doucement...mais j'avance
J'ai compris mon erreur ....enfin...
Je voulais absolument me passer de la version de l'assembly, fondamentale erreur!!!
Code:
1 2 3
| Type monType = Type.GetType("System.Windows.Forms.Button, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Control ctrl = (Control) Activator.CreateInstance(monType);
this.Controls.Add(ctrl); |
me permet donc de créer mon controle à partir d'une chaine de caractères => d'ou le tag.
Cela dit, je n'arrive toujours pas à récupérer le ou les assembly de ces contrôles par le code ... :? Car comment faire si on ne connait pas l'assembly qui définit le controle que l'on désir instancier 8O ???? Pour moi une solution serait de le ou les récupérer et au cas ou il y en aurait plusieurs d'utiliser le plus récent .......je vais déjà essayer de les récupérer !!!
J@cHerror, Penang.