Atributos de 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. Debido a que los componentes se pueden mostrar en un diseñador como Visual Studio. NET, requieren atributos que proporcionen metadatos a las herramientas en tiempo de diseño. En esta sección se describen y enumeran los atributos de tiempo de diseño más utilizados habitualmente.

Compatibilidad con atributos y diseñadores

Los atributos de 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 examinador de propiedades mostrar la propiedad TextAlignment en la categoría Alignment. El atributo DescriptionAttribute permite al examinador 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 { //... }
[Visual Basic]
<Category("Alignment"), _
Description("Specifies the alignment of text.")> _
Public Property _
TextAlignment As ContentAlignment
   ' ...
End Property

Nota para los usuarios de C# y Visual Basic .NET: En C# y Visual Basic .NET, se puede hacer referencia a una clase de atributo denominada NombreAtributoAttribute simplemente como NombreAtributo en la sintaxis del atributo.

Algunos atributos de 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 formularios Windows Forms y los controles de servidor de 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 { //... }
[Visual Basic]
' 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. 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;
[Visual Basic]
' 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
Atributo Se aplica a Descripción
BrowsableAttribute Propiedades y eventos Especifica si una propiedad o evento debe mostrarse en el examinador 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 examinador de propiedades.
DescriptionAttribute Propiedades y eventos Define un bloque pequeño de texto que se mostrará en la parte inferior del examinador 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 examinador 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 examinador de propiedades.
TypeConverterAttribute Propiedades Especifica el conversor 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 examinador de propiedades cuando el usuario hace clic en el componente.

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

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

Vea también

Mejorar la compatibilidad en tiempo de diseño | Atributos y compatibilidad en tiempo de diseño