Cré. Dynamiquement un objet

Résolu
Signaler
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
22
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
28 novembre 2006
-
Salut
je veux savoir comment créer un textbox dynamiquement(au cours de l'execution), et comment cloner un autre controle existant.

merci pour votre aide.

YaoYao !!

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
TextBox monTextBox = new TextBox();
monTextBox.Name = "monTextBox";
monTextBox.Text = "Mon TextBox";
monTextBox.Location = new Point(10, 10);
this.Controls.Add(monTextBox);


pour ce qui est du clonage, les controles n'implementent pas ICloneable mais tu as juste a instancier un nouveau controle et lui affecter les valeurs du "modele" qui t'interressent

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Cocoricoooooooo !!!!
Messages postés
22
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
28 novembre 2006

Mais n'y aurait il pas moyrn de faire un boucle foreach properties qui recopie les valeurs de toutes les propriétés dans le nouvelle objet ?

Et ce processus la n'est il également pas réalisable pour un UserControl par exemple contenant plusieurs controls avec chacun plusoeurs propriéts ???? En fait c est cela que je veux réaliser personnellement !

Merci d avance
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
En utilisant la "Reflection" ça doit être faisable.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
22
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
28 novembre 2006

Mais comment on fait ? , il me faudrait un exemple avec un petit bout de code histoire de voir.

J'arrive a récupérer les propriétes de chaque objet mais j'arrive pas à les inscrire dans mon clone.

Voici mon code :



public object Clone()
{
IHMFicheAgent CloneFicheAgent;


CloneFicheAgent = new IHMFicheAgent();


int i=0;




foreach (Control c in this.Controls)
{
foreach (System.Reflection.PropertyInfo propInfo in c.GetType().GetProperties()
{
if (propInfo.CanWrite == true)
{
propInfo.SetValue(CloneFicheAgent.Controls[i], propInfo.GetValue(c, null), null);
}
}
i++;
}


return (object)CloneFicheAgent;

}