System.Reflection?

Résolu
Olympe18 Messages postés 3 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 15 janvier 2005 - 14 janv. 2005 à 21:09
Olympe18 Messages postés 3 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 15 janvier 2005 - 15 janv. 2005 à 00:25
Bonjour,

Je suis encore un débutant en C# et je fais face à un petit problème. La solution est sans doute simple, mais pour l'instant, je ne trouve pas ma solution. Voici:


Notre application en développement comporte un menu créé dynamiquement où les items sont dans une base de données. Lorsqu'on clique sur un item dans le menu, un objet contenant la form à ouvrir est retourné. Le problème est simple : je dois ouvrir cette form à partir de cet objet ( ex: System.Windows.Forms.Form frm = new «MonObjet»() ) On m'a parlé de System.reflection, mais il doit y avoir un détail dans ça qui m'échappe encore...


Merci de votre aide!

3 réponses

cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
14 janv. 2005 à 22:46
Petit exemple simple, avec récupération et invocation du constructeur par défaut, sans paramètres :


string toShow = "LeNamespace.FormAAfficher";

Type type = Type.GetType(toShow);
object[] parameters = new object[]{};
Type[] types = new Type[]{};

Form form = (Form)type.GetConstructor(types).Invoke(parameters);
form.Show();

Cocoricoooooooo !!!!
coq
MVP Visual C#
3
Olympe18 Messages postés 3 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 15 janvier 2005
14 janv. 2005 à 22:30
Évidemment, l'objet ne contient pas la form, mais bien le nom de la form!

Hé hé!
0
Olympe18 Messages postés 3 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 15 janvier 2005
15 janv. 2005 à 00:25
Eh bien merci pour la réponse rapide! J'ai testé et ça fonctionne à merveille!!!

Je vais m'en souvenir!

Salut!
0
Rejoignez-nous