Creation d'objet dynamique (FORM) [Résolu]

Messages postés
47
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
24 juin 2011
- - Dernière réponse : katerson
Messages postés
47
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
24 juin 2011
- 24 sept. 2010 à 15:12
Salut à tous,


Je travaille en ce moment sur Visual Studio et j'utilise les Forms pour mon application.

Je viens de créer une arborescence (TreeView) et j'aimerai, lorsque je clique sur un élément de celle-ci, faire apparaître graphiquement son contenu.
Pour cela, j'aimerai créer dynamiquement des éléments (boutons, images) à chaque clique (et supprimer les précédents).

Avez-vous une idée de comment faire cela? Dois-je les créer sur le ClickEvent?

Je suis surpris de ne pas trouver d'info sur le net et je rame pas mal...


Merci et A+
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
47
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
24 juin 2011
3
Merci
Pour ce que ça intéresse, il est possible d'utiliser la méthode suivante :

System::Void CreateObject(..., short ObjIndice)
{
//declaration de l'objet
Button^ MyButton;
MyButton = gcnew Button();

//infos de l'objet
MyButton->Name = p_Name + Convert::ToString(ObjIndice);

//je décale l'objet de "25" pour ne pas écraser les précédents
MyButton->Top = ObjIndice* 25;
MyButton->Text = p_Name + Convert::ToString(ObjIndice);
}

J'appelle "CreateObject" autant de fois que j'en ai besoin et j'incrémente ObjIndice.

A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 136 internautes nous ont dit merci ce mois-ci

Commenter la réponse de katerson
Messages postés
47
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
24 juin 2011
0
Merci
Je pensais initialement déclarer un tableau de bouton (par exemple) et l'appelle de l'évenement "TreeViewClick" faire :

---------------------------------------------------
CheckBox^ x[NB_INSTANCE_MAX];
x[Indice] = gcnew CheckBox();
...
Indice++;
---------------------------------------------------

Apparemment, cela semble impossible, le compilo me dit :
"a native array cannot contain this managed type"


Est-ce qu'il y a une autre solution?

Merci,
Commenter la réponse de katerson