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
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
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