Eventuali duplicati:
Text property in a UserControl in C#Come esporre la proprietà Text di un UserControl?
Come faccio a contrassegnare la proprietà Text
di un UserControl
come sfogliabile?
A. NET UserControl
classe ha una proprietà Text
.
Purtroppo la proprietà di un UserControl
Text
non browsable è:
//
//
// Returns:
// The text associated with this control.
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text { get; set; }
Nel mio UserControl
ho voglio per esporre la proprietà Text
(cioè renderlo "sfogliabile") nella finestra delle proprietà. Ho provato ciecamente dichiarandolo sfogliabile:
[Browsable(true)]
public override string Text { get; set; }
e ora appare nella finestra delle proprietà, solo che adesso non si fa nulla.
Ho provato a chiamare ciecamente base.Text
di riportare la funzionalità:
[Browsable(true)]
public override string Text { get {return base.Text;} set { base.Text = value; this.Invalidate(); } }
e ora la proprietà ha la funzione in fase di progettazione, ma il valore della proprietà non viene mantenuto al Form.Designer.cs
ed è InitalizeComponent
codice.
Qual è la corretta modo per esporre la proprietà UserControl
Text
in modo che:
- è sfogliabile nella finestra delle proprietà
- è funzionale
- è persistito nel form designer
e, come bonus:
- sapere quando cambia
Non proprio un duplicato esatto. La mia domanda era * come * (cioè il modo corretto, al contrario del mio uso casuale della tastiera) per rendere una proprietà sfogliabile. L'altra domanda è una proprietà che è già sfogliabile, ma non viene serializzata. –