Duplicar posible:
Text property in a UserControl in C#Cómo exponer la propiedad Text de un control de usuario?
¿Cómo puedo marcar la propiedad de un Text
UserControl
como navegable?
Un .NET UserControl
clase tiene una propiedad Text
.
Por desgracia la propiedad de un Text
UserControl
no es browsable:
//
//
// Returns:
// The text associated with this control.
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text { get; set; }
En mi UserControl
que quieren para exponer la propiedad Text
(es decir, que sea " navegable") en la ventana de propiedades. He intentado ciegamente declarándolo navegable:
[Browsable(true)]
public override string Text { get; set; }
y ahora aparece en la ventana de propiedades, excepto que ahora no hace nada.
He intentado llamar a ciegas base.Text
para traer de vuelta a la funcionalidad:
[Browsable(true)]
public override string Text { get {return base.Text;} set { base.Text = value; this.Invalidate(); } }
y ahora la propiedad hace la función en tiempo de diseño, pero el valor de la propiedad no se conserva a la Form.Designer.cs
y es InitalizeComponent
código.
Cuál es el adecuada manera de exponer la propiedad UserControl
Text
tal manera que:
- es navegable en la ventana de propiedades
- es funcional
- se conserva en el diseñador de formularios
y, como un bono:
- saber cuando se cambia
No es un duplicado exacto. Mi pregunta era cómo * * (es decir, la forma correcta, a diferencia de mi teclado maceración al azar) para hacer una propiedad navegable. La otra pregunta es una propiedad que ya se puede explorar, pero que no se está serializando. –