Control personnalisé

Frederyck Messages postés 62 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 janvier 2009 - 12 sept. 2004 à 12:41
Frederyck Messages postés 62 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 janvier 2009 - 13 sept. 2004 à 12:13
Bonjour,

Alors mon soucis est le suivant:
Voyez vous dans Visual Studio, dans la fenêtre Propriété d'un control serveur, par exemple Label, une des propriétés est Font.
Elle est représentée comme un noeud que l'on déploie pour renseigner par exemple la valeur bold, underline etc....
Cette propriété est dans la classe Label un "get" sur probablement un instance de la classe FontInfo contenu dans la classe Label.

Je souhaiterai pourvoir faire la même chose mais avec une classe de mon choix. Exemple je crée une classe MyProperty, qui possède un certains nombre de champs. Admettons que je crée un control personnalisé MyLabel qui hérite de Label. Comment puis je faire pour obtenir un noeud que je puisse déployer dans la fenêtre de propriété de mon composont MyLabel et surtout car c'est pour moi le plus important, comment faire pour que lorsque je modifie une des propriétés de ma classe MyProperty pour que ca se répercute directement sur mon control dans le concepteur.

En effet la Propriété Font lorsque qu'on met la veleur Bold à true, tt de suite le texte passe en gras. Je suppose donc qu'à un moment la méthode Render du contrôle à été appellée seulement comment l'appeller explicitement ?

lol, je ne sais pas si j'ai été assez clair dans ma question, n'hésitez pas à me poser des question afin que celle ci vous paraisse plus clair, et surtt n'hésitez pas à me donner quelques idées afin que je puisse les tester voir même m'inspirer pour trouver la solution.

Merci !

Frederyck

5 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
12 sept. 2004 à 13:02
Regardes au niveau des tags que tu peux ajouter avant la déclaration d'une méthode.
Voici un exemple d'un truc que j'avais fait une fois :

[Category("Style")]
public Font TextFont
{
get { return _textFont; }
set { _textFont = value; }
}

Je créer une nouvelle catégorie nommée Style à laquelle j'ajoute TextFont. Il te propose automatique les bons menus par la suite, car TextFont est de type Font.

J'espère avoir bien compris ta question :big)
A+

Bidou
0
Frederyck Messages postés 62 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 janvier 2009 1
13 sept. 2004 à 10:30
Merci de m'avoiur répondu aussi vite,

en fait je vois ce que tu m'expliques, mais ce n'est pas ce que je cherche à faire. Effectivement si je rajoute un attribut [Category("Nom de ma catégorie")] devant toutes le propriétés que je souhaite réunir, dans la fenêtre de propriétés elles apparaitront ensemble.. Seulement moi ce que je souhaite fairec véritablement rajouter une classe dans ma classe. De ce fait en faisant une propriété de ma classe dans mon control la représentation de cette propriété dans ma fenêtre de proprité va être, comme pour la classe FontInfo, une noeud portant le nom de ma propriété, et une fois déployé ce noeud contiendra les propriétés public contenu dans ma classe...
Et là où je bloc c'est qu'en modifiant une des propriétés de cette classe je n'arrive pas à metter à jour mon control, étant donné que la méthode Render de mon control n'estr pas appellé car le control n'a pas eu vent de cette modification... Or dans la classe FontInfo lorsque je modifie par exemple la propriété BOLD à true tout de suite le texte de mon label devient gras. Comment faire pour qu'il y ai aussi cette interaction entre un control et une classe de notre choix ?

Frederyck
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 sept. 2004 à 10:56
un appel à la methode Invalidate dans l'accesseur set devrait suffire je pense (pas tester)

Cocoricoooooooo !!!!
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 sept. 2004 à 11:08
ah non c'est du webform
donc aucune idée

Cocoricoooooooo !!!!
0

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

Posez votre question
Frederyck Messages postés 62 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 16 janvier 2009 1
13 sept. 2004 à 12:13
ok c 'est pas grave merci quand même. L'idée est précisemment là, il faudrait forcer le rechargemen de la page, seulement la méthode render prend en paramètres un HtmlTextWriter et je ne sais pas comment lui fournir....

Si quelqu'un à une idée :big) je serai ravie qu'il la partage MERCI !!

Frederyck
0
Rejoignez-nous