Control, UserControl y la propiedad Text

¿Dónde está la propiedad Text en la ventana de propiedades? Esa es el meollo del asunto.

A veces, cuando heredamos de la clase Control o UserControl queremos utilizar la propiedad Text con cualquier objetivo. Por lo general, hacemos lo de siempre: o bien utilizamos override o bien new (preferéntemente la primera de estas).

Por lo general, todo parece ir de maravilla. Todo compila y funciona como queremos, sin embargo, al arrastrar nuestro control comprobamos una cosa que puede llegar a frustrarnos: en la ventana de propiedades no hay ni rastro de Text. En ninguna de las categorías…

Entonces, raudo y veloz abrimos una ventana de código y comprobamos efectivamente que sí que tenemos la susodicha propiedad Text.

¿Qué está pasando?

Actualmente, por algún extraño motivo (si alguién lo sabe que comente), esta propiedad, en la clase Control (de la que hereda UserControl) está marcada con el atributo [Browsable(false)] lo que indica que se NO mostrará en el propertyGrid.

La solución, una vez conocido este detalle consiste en sobreescribir Text con el atributo Browsable(true). Esta clase la encontrareis en el namespace System.ComponentModel.

Pues con esto, ya podemos hacernos la vida un poco más fácil a la hora de desarrollar controles personalizados.

Control, UserControl y la propiedad Text