Objet dynamique .net.

Signaler
Messages postés
8
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
16 janvier 2004
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

Petite question je crée 2 objets Panel (panel1,panel2);

panel1 = new System.Windows.Forms.Panel();
panel2 = new System.Windows.Forms.Panel();

J'aimerais y acceder dynamiquement dans une boucle du style panel+i ou i=1 ou 2;

Comment faire ?

Merci d'avance

John

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
y'a ptet moyen en utilisant une collection (genre ArrayList) non ?

quand tu crée un panel tu l'y ajoute et comme ça tu peut y acceder via un index correspondant à ton i

Cocoricoooooooo !!!!
Messages postés
8
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
14 janvier 2004

tu peux aussi utiliser la reflexion :
this.GetType().GetProperty("Panel1").GetValue(this, null);

peut etre modifier un peux la ligne en tout cas elle doit te renvoyer un object que tu cast ensuite en panel.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
public const BindingFlags ma =
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.IgnoreCase ;

----------------------

TextBox tb1 = this.GetType().GetField("textbox"+ i,ma).GetValue(this);

----------------------

A vue de n'oeil mais ca devrait marché

::|The S@ib|::
MVP C#.NET
Messages postés
8
Date d'inscription
vendredi 4 juillet 2003
Statut
Membre
Dernière intervention
16 janvier 2004

Merci pour vos réponse.

j'ai juste encore un souci, j'ai fait :

Panel pn1 = this.GetType().GetField("panel3",ma).GetValue(this);

Mais j'obtiens comme erreur impossible de convertir un typ object en Panel;

Merci

John
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
essaye le cast on sait jamais :

Panel pn1 = (Panel)(this.GetType().GetField("panel3",ma).GetValue(this));


Cocoricoooooooo !!!!