User control

Signaler
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
bonjour,

Ppeut-on et comment faire pour avoir des controles ou des proprietes  contenues dans un user control  atteignable par le designer d'un forumlaire le contenant
par exemple si g un usercontrol contenant un label copmment puis-je modifier la taille de ce label ou sim:plement sa couleur a traver sle designer du formulaie contenant ce user_control?

en fait au depart je pensais faire un formilaire a partir duquel j'heriterais d'autrs formulaires mais je voudrais pouvoir modifier des controles de ce formulaire a partir du designer. Je ne veux pas modifier un a un les controles mais j'aimerais qu'ils possedent (pour certains d'entre eux le smemes proprietes et donc si j'en modifie une ca le smodifie toutes et cela a partir du designer)
est-ce possible?

merci

18 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
Oui c'est possible :

1) tu fais une propriétés qui retrourne un control de ton userControl => myUserControl.myLabel par exemple

public Label LabelXXX
{
 set { this.myLabelXXX = value;
 get { return this.myLabelXXX;
}

2) tu mets juste certaines propriété d'un Control à disposition :

myUserControl.LabelXXXForColor

public Color LabelXXXForColor
{
 set { this.myLabelXXX.ForColor = value;
 get { return this.myLabelXXX.ForColor;
}


<hr size="2" />




VC# forever
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
jmerci pour cette reponse rapide
mais je ne sais pas ou mettre ces proprietes...
si je veux pouvoir changer ds le designer du user control
le label

j'ai mis dans le corps du  

public partial class myuser : usercontrol
{

myuser.LabelXXX

public Label LabelXXX
{
 set { this.myLabelXXX = value;}
 get { return this.myLabelXXX;}
}

}

Mais il y a un erreur de syntaxe!

ne manque-t-il rien?
ou dois je mettre ce sproprietes?
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
ah ok
je crois que j'ai trouvé ya pas besoin de myuser.LabelXXX
 et je trouve les infos pour le designer ds misc
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
par contre quand je fais build


le text contenu ds le label est reinitialisé (celui du usercontrol) pkoi?
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Qu'appelles-tu réinitialisé ?

Dits nous quelle valeur il affiche (et où est cette valeur dans ton code)
Et quelle valeur tu aurais voulu (et où est cette valeur dans ton code)
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
ok
il y avait ecrit label1 ds le usercontrol

je change le text ds le designer du formulaire le contenant : "titre" par exemple

je fais build ou rebuild

et j'ai label1 affiché de nouveau ds mon formulaire (enfin ds le usercontrol de mon formulaire)
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
J'ai déjà eu ce pb, galère, je ne me rapelle plus comment je l'avais résolu, grrr.

Si tu n'as pas besoin de toutes les propriétés du label, fait plutot :

        [Browsable(true)]
        public string LabelText
        {
            set { this.label1.Text = value;}
            get { return this.label1.Text;}
        }   

Et là tu peux changer le libellé sans pb.
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
ok
je vais faire de meme pour front color et backcolor alors
lol
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
c'est pas Browsable(true)...

C'est
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Ah !! Je ne connaissais pas cette enum.
Je regarde l'aide, mais j'ai du mal à voir la différence, peux-tu m'éclairer ?

merci
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
euh je suis perplexe la!


je ne comprends pas la reponse de sebmafate du tout


c quoi browsable(true)? (pourquoi c pas! qq'un l'avait proposé?)


et [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

si c une reponse a mon probleme je ne vois pas dut otu coment l'utiliser pourrais - tu detailler un peu plus?
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
        public string LabelText
        {
            set { this.label1.Text = value;}
            get { return this.label1.Text;}
        } 

marche aussi sans browsable(true) ou [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

non?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 public string LabelText
        {
            set { this.label1.Text = value;}
            get { return this.label1.Text;}
        } 

ca indique au designer de sérialiser le contenu de la propriété au moment du design. Ca te permet de renseigner tes propriété dans le designer.
Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
oui merci mais ca marche aussi juste avec


 public string LabelText
        {
            set { this.label1.Text = value;}
            get { return this.label1.Text;}
        } 

(chez moi en tout cas)
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
J'ai regardé vite fait, mais browsable et DesignerSerializationVisibility ont le meme comportement. J'étudierai plus en détail quand j'aurai le temps.

Ah oui, tu parles du designer du UserControl, j'étais parti sur le designer de la WinForm, oups 
Ton mot "Titre" de ton exemple, tu dits que tu le mets avec le designer de ton formulaire. Le formulaire c'est bien la WinForm ? Parce que sans DesignerSerializationVisibility je ne vois pas comment tu peux avoir LabelXXX dans la fenêtre de propriété de ton UserControl (qui est sur une WinForm).
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
je vois les prop du label (enfin le texte dans le cas present) dans le designer du formulaire quand je clique sur le usercontrol (dans les proprietés du user control, dans misc) (c ca ta question?) et c juste ce que je voulais.
 
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Ah oui, ça marche avec mon VC# Express 2005, mais pas en 2003, et vu que je faisais mes tests avec 2003, je ne comprenais pas ce que tu disais.

Donc j'ai rien dit
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
oui désolé j'ai oublié de préciser je ne pensais pas que cela pouvait influer sur le resultat
sinon j'ai des questions sur les mdi
http://www.csharpfr.com/infomsg_PROBLEME-AVEC-SHOWDIALOG_806243.aspx#7

si tu peux m'aider n'hesite pas

;-)