Atributos en tiempo de diseño para componentes

Si no está familiarizado con la aplicación de atributos para proporcionar metadatos a Common Language Runtime, vea Extender metadatos mediante atributos. Puesto que los componentes se pueden mostrar en un diseñador, como Visual Studio, requieren atributos que proporcionen metadatos a las herramientas en tiempo de diseño. En esta sección se describen y enumeran los atributos en tiempo de diseño más utilizados habitualmente.

Compatibilidad con atributos y diseñadores

Los atributos en tiempo de diseño son esenciales para mostrar el control y sus miembros correctamente en tiempo de diseño, ya que proporcionan información valiosa a la herramienta de diseño visual.

En el siguiente fragmento de código, el atributo CategoryAttribute permite al explorador de propiedades mostrar la propiedad TextAlignment en la categoría Alignment. El atributo DescriptionAttribute permite al explorador de propiedades ofrecer una breve descripción de la propiedad cuando el usuario hace clic en ella.

[
Category("Alignment"),
Description("Specifies the alignment of text.")
]
public ContentAlignment TextAlignment { //... }
<Category("Alignment"), _
Description("Specifies the alignment of text.")> _
Public Property _
TextAlignment As ContentAlignment
   ' ...
End Property

Nota

En Visual C# y Visual Basic se puede hacer referencia a una clase de atributos denominada NombreDeAtributoAttribute simplemente como NombreDeAtributo en la sintaxis de atributo.

Algunos atributos en tiempo de diseño se aplican en el nivel de clase. El atributo DesignerAttribute se aplica en el nivel de clase e indica al diseñador de formularios qué clase de diseñador debe utilizar para mostrar el control. Los componentes se asocian a un diseñador predeterminado (System.ComponentModel.Design.ComponentDesigner), y los formularios Windows Forms y los controles de servidor ASP.NET se asocian a sus propios diseñadores predeterminados. Aplique DesignerAttribute sólo si ha definido un diseñador personalizado para su componente o control.

// Associates the designer class SimpleControl.Design.SimpleDesigner
// with Simple.
[ Designer(typeof(SimpleControl.Design.SimpleDesigner))]
    public class Simple : WebControl { //... }
' Associates the designer class SimpleControl.Design.SimpleDesigner
' with Simple.
<Designer(GetType(SimpleControl.Design.SimpleDesigner))> _
Public Class Simple
    Inherits WebControl
    ' ...
End Class

Atributos comunes de propiedades y eventos

En la siguiente tabla se enumeran los atributos que normalmente se aplican a propiedades y eventos.

Atributo

Se aplica a

Descripción

BrowsableAttribute

Propiedades y eventos

Especifica si una propiedad o evento debe mostrarse en el explorador de propiedades.

CategoryAttribute

Propiedades y eventos

Especifica el nombre de la categoría donde se agrupará la propiedad o evento. Cuando se utilizan categorías, las propiedades y los eventos de los componentes se pueden mostrar en grupos lógicos en el explorador de propiedades.

DescriptionAttribute

Propiedades y eventos

Define un bloque pequeño de texto que se mostrará en la parte inferior del explorador de propiedades cuando el usuario seleccione una propiedad o evento.

BindableAttribute

Propiedades

Especifica si una propiedad es apropiada para enlace.

DefaultPropertyAttribute

Propiedades

(Inserte este atributo antes de la declaración de clase.)

Especifica la propiedad predeterminada del componente. Esta propiedad se selecciona en el explorador de propiedades cuando el usuario hace clic en el control.

DefaultValueAttribute

Propiedades

Establece un valor predeterminado simple para una propiedad.

EditorAttribute

Propiedades

Especifica el editor que se va a utilizar para modificar una propiedad en un diseñador visual.

LocalizableAttribute

Propiedades

Especifica que una propiedad se puede localizar. Las propiedades que tienen este atributo se conservan automáticamente en el archivo de recursos cuando el usuario elige localizar un formulario.

DesignerSerializationVisibilityAttribute

Propiedades

Especifica cuándo y cómo se debe conservar en el código una propiedad que se muestra en el explorador de propiedades.

TypeConverterAttribute

Propiedades

Especifica el convertidor de tipos que se va a utilizar para convertir el tipo de la propiedad en otro tipo de datos.

DefaultEventAttribute

Eventos

(Inserte este atributo antes de la declaración de clase.)

Especifica el evento predeterminado del componente. Este es el evento que se selecciona en el explorador de propiedades cuando el usuario hace clic en el componente.

A menos que se indique lo contrario, los atributos de propiedades y eventos se sitúan en el código inmediatamente antes de la declaración de la propiedad o evento, como se muestra en el siguiente ejemplo.

// To apply CategoryAttribute to the BorderColor 
// property, place it immediately before the declaration
// of the BorderColor property.
[Category("Appearance")] 
public Color BorderColor;

// To apply DescriptionAttribute to the Click event, 
// place it immediately before the declaration
// of the Click event.
[Description("The Click event of the button")]
public event EventHandler Click;
' To apply CategoryAttribute  to the BorderColor 
' property, place it before the property declaration.
<Category("Appearance")> Public BorderColor As Color

' To apply DescriptionAttribute to the Click event, 
' place it before the event declaration.
<Description("The Click event of the button")> Public Event Click

Para obtener más información sobre los atributos en tiempo de diseño que asocian diseñadores con componentes y controles, vea Ampliar compatibilidad en tiempo de diseño.

Además de utilizar las clases de atributos definidas en la biblioteca de clases .NET Framework, puede definir sus propias clases de atributos. Para obtener más detalles al respecto, consulte la documentación del lenguaje de programación o vea Escribir atributos personalizados.

Vea también

Tareas

Cómo: Aplicar atributos en controles de formularios Windows Forms

Conceptos

Atributos y compatibilidad en tiempo de diseño

Atributos en controles de formularios Windows Forms

Otros recursos

Ampliar compatibilidad en tiempo de diseño