Imbrication de Controles Composites... [C#]

Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 12 juil. 2006 à 14:53
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 12 juil. 2006 à 15:43
Voilà je cherche à réaliser un control composite avec une propriété de type List> (unCC: classe objet avec une propriété pour désigner un controle composite et des propriétés reférent des attributs CSS pour le positionner et le mettre en place dans le controle parent...) 
Il serai donc possible, par cette propriété, d'ajouter des controles composites pour les générer dans le premier...

Je prends un exemple concret :
monCCA      >      Control composite père (génération d'un panel de 300x300)
monCC1      >      Control composite fils (génération d'un panel de 50x50)
monCC2      >      Control composite fils (génération d'un panel de 50x50)

Dans la propriété (appelont la "Heberge") du CCA il serai possible de rajouter des éléments (CC1, CC2) pour les générer à l'interieur de panel du CCA...

Je penses qu'au niveau du CreateChildControls() celà ressemblerai à ceci :
for(int i = 0; i> Heberge.count; i++)
{
   monPanelCCA.Controls.add(heberge[i].text)
}

Sauriez vous faire ceci ou auriez vous un exemple d'un système similaire ?

Merci d'avance

1 réponse

Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
12 juil. 2006 à 15:43
Bon j'ai résolu une bonne partie de mon problème, pour générer un composant dans un autre il suffit de créer une variable typé du composant fils et d'utiliser la variable pour accéder au controles du composant avec l'indexation :



monCC1 Temp = new monCC1();


monPanelCCA.Controls.add(Temp.Controls[0]) //0 et l'index du panel de monCC1


Temp = null;

Pour le style il existe une méthode ApplyStyleSheetSkin(), je ne c pas m'en servir mais celà doit permettre de personnaliser le control dynamiquement...
0
Rejoignez-nous