Ce que je cherche à faire exactement, c'est d'ouvrir la ComboBox d'un champ du PropertyGrid que j'ai sélectionné au préalable.
Ici je suis dans une class héritée de PropertyGrid. propertyGridView est une variable membre que je récupère au lancement du programme et qui est le PropertyGridView contenu dans le PropertyGrid (membre privé auquel j'ai accès sans problème!).
Lorsque j'exécute le code, infoLb est correctement initialisé, mais lorsque je fais le GetValue, il me retourne null
Par contre, si j'utilise Intellisence pour voir le contenu de propertyGridView et que je vois la variable listBox et que je repasse dans le même code alors la je récupère correctement la variable! Ensuite, si je réexécute la méthode autant de fois que je le souhaite ca fonctionnera à tous les coups!
Si un esprit éclairé veut bien venir éclairer le mien, je lui en serais très reconnaissant
En passant, si vous avez une autre méthode pour ouvrir la Combo je suis partant! Je ne suis pas encore certain que le ListBox soit rempli de cette manière mais ca c'est une autre histoire ;)
A voir également:
Problème d'accès aux membres privés via Réflection
jet_d_ail
Messages postés6Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention12 mars 2007 15 févr. 2007 à 10:30
Bon benh des fois que ca intéresserait quelqu'un j'ai trouvé une alternative qui fonctionne (merci au CallStack) et qui est un peu moins barbare, mais toujours basée sur le même principe :
Type t = propertyGridView.GetType();
FieldInfo info = t.GetField(
"selectedRow",
BindingFlags.NonPublic |
BindingFlags.Instance);
Je récupère le ligne sélectionnée, et j'apelle la méthode PopupDialog en lui fournissant la ligne en cours et ca fonctionne parfaitement :). En plus, avec cette méthode la liste est remplie correctement :)