5 Questions sur les propriétées des composants ... [C#]

Résolu
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 28 juin 2006 à 10:21
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007 - 7 juil. 2006 à 17:15
Voilà, je créé des controles (classe cs objet) que j'importe dans mes projets asp.net et je me pause pas mal de question sur les propriétés de ces controles :
- Comment définir une valeur par défaut ?
- Comment créer une propriété de type liste ? (l'utilisateur pourrai ajouter des éléments dans VS)
- Comment créer une propriété de type liste typé ? (typé d'un autre objet comme par exemple une table avec sa propriété item qui ont aussi leur propriété....)
- Comment créer une propriété de type liste préremplie ou l'utilisateur ne peut faire qu'un seul choix ?
- Et comment créer une propriété de type liste préremplie ou l'utilisateur pourrai selectionner plusieur items ?

Voilà voilà, je travail sous C# et je remerci par avance tout ceux qui pourrai me venir en aide sur ces quelques questions!!

PS : Je n'ai pas pas trouvé de meilleur rubrique pour pauser cette question même si celà concerne le c# et pas le VBScript
A voir également:

5 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 juin 2006 à 10:28
Bonjour, pour créer une valeur par défaut dans une propriété il suffit de faire :

private _text as string = "valeur par défaut"
public property Text as string
get
return _text
end get
set (byval value as string)
_text = value
end set
end property

sinon pour l'histoire de type liste, je ne comprend pas bien. le problème est comment faire pour que dans le designer et dans le code aspx on puisse rajouter des valeurs ? si oui regarde un des articles de TKFE (http://blogs.Developpeur.org/tkfe/ (il y a qq mois déjà))

sinon pour déclarer une propriété de type liste il suffit de faire

private _list as new List(of MonObjet)
public property List as List(of MonObjet)
{get{}, set{}}

<hr />Cyril - MVS - MCP
3
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
28 juin 2006 à 10:47
Je crois que tout se que je cherche est sur expliqué sur le site du lien que tu m'as passé
Merci beaucoup
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
28 juin 2006 à 11:29
Je viens d'apprendre quelques trucs grace au lien de Jesus alors pour info en C# il suffit de mettre des attributs au dessus de la propriété pour définir l'interpretation dans VisualStudio
exemple :

private string _MaPropriété;
[Category("macatégorie"), DefaultValue("ma valeur"), Description("blabla bla")]
public string MaPropriété
{get{}set{}}

Voilà, ça déjà c'est simpa mais il y a bcp mieu, on peut créer une interface personnalisée pour l'aide à la saisie d'URL ou autre pour une propriété

Amusez vous bien!!

PS: dès que j'ai un exemple concret pour une interface d'ajout d'objet je vous le communique!
0
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
4 juil. 2006 à 10:18
Après quelques bidouillage et la lecture de posts sur code source c# j'ai réussi à créer une option de type objet personnalisé :
   1 -  Déclarez une propriété objet en utilisant l'attribut "[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]"
 
   2 - Ajouter l'attribut "[TypeConverter(typeof(ExpandableObjectConverter))]"
à la class objet et si tout se passe bien vous verez apparaitre la propriété objet avec un petit + et le contenu de ses propriétés dedant!

Plus intéressant, pour créer une propriété de type collection d'objet il faut utiliser le même procédé mais en typant la propriété "List<MONOBJET>"

Simpa simpa mais il reste encore beaucoup de questions sans réponse comme :
   - Comment créer une propriété de type dropdownlist
   - Comment créer une propriété de type checkboxlist
   - Comment attribuer une valeur par défaut aux listes (préremplire une collection d'objet ou de string suivant la propriété : j'ai trouvé une bidouille en créant une variable booléenne et en instantiant dans le get à la première lecture mais à mon avis il doit y avoir une solution avec le DefaultValue....)
   - Et comment imbriquer des propriétés objets dans une propriété objet

En espérant qu'une personne pourra m'aider à avancer plus vite bonne prog!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bubuss Messages postés 147 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 8 décembre 2007
7 juil. 2006 à 17:15
Bon grace à l'aide de sebmafate j'ai créer mes propriété dropdownlist et checkboxlist en utilisant le namespace windows.form et la class EnumEditor
Les collections sont donc de type enum mais je vais me pencher sur une migration vers un type arraylist car la classe enum ne permet pas une génération dynamique d'une liste étant côdé directement...

Par ailleur je me suis apperçu de plusieur problème concernant les propriétés objets, mes informations sont très incompletes.
Pour avoir un rafraichissement instantané dans le designer il faut que chaque propriétés des objets est les attributs : [RefreshProperties(RefreshProperties.Repaint)]
mais il faut aussi mettre l'attribus : [NotifyParentProperty(true)]
Je n'ai pas la définition exacte mais à mon avis c'est pour que l'on puisse retrouver la valeur de la propriété de l'objet dans le noeud qui va être créé
D'ailleur il faut spécifier egalement au niveau de la propriété public que c'est un objet complexe et que sa définition va se trouver dans une balise interne (PersistenceMode) et le type d'objet (TemplateContainer):
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateContainer(typeof(monObjet))]
Dernière chose primordiale, le constructeur de l'objet doit être public et non internal

Voilà avec ces dernières infos le code est véritablement fonctionnel
Il reste encore quelques petit trucs à trouver comme l'imbrication de composants expensible dans l'interface ou encore comment changer le tostring en face de la propriété expensible et y mettre autre chose que le chemin de l'objet...
Si jamais vous trouvez faites moi signe!

Autrement si une personne à une méthode pour interfacer les composants entre eux (comme la propriété groupe des radio) je serai très intéressé car je cherche maintenant à réaliser une propriété dropdownlist qui detecte les objets du même type...

PS: merci à jesusonline et sebmafate pour leur aide
0
Rejoignez-nous