组件的设计时属性 (Attribute)

更新:2007 年 11 月

如果您对应用属性 (Attribute) 向公共语言运行库提供元数据不熟悉,请参见利用属性 (Attribute) 扩展元数据。因为组件可以显示在设计器(例如 Visual Studio)中,所以它们需要向设计时工具提供元数据的属性 (Attribute)。本节说明并提供一组常用的设计时属性 (Attribute)。

属性 (Attribute) 和设计器支持

因为设计时属性 (Attribute) 向可视设计工具提供有价值的信息,所以它们对在设计时正确显示您的控件及其成员非常重要。

在下面的代码片段中,CategoryAttribute 属性 (Attribute) 启用属性 (Property) 浏览器以在“Alignment”类别中显示 TextAlignment 属性 (Property)。DescriptionAttribute 属性 (Attribute) 允许属性 (Property) 浏览器在用户单击某个属性 (Property) 时显示该属性 (Property) 的简要说明。

[
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
tk67c2t8.alert_note(zh-cn,VS.90).gif说明:

在 Visual C# 和 Visual Basic 中,名为 AttributeNameAttribute 的属性 (Attribute) 类在属性 (Attribute) 语法中可简单地作为 AttributeName 引用。

某些设计时属性 (Attribute) 是在类级别应用的。DesignerAttribute 属性 (Attribute) 在类级别应用,它通知窗体设计器使用哪个设计器类来显示控件。组件与默认的设计器 (System.ComponentModel.Design.ComponentDesigner) 关联,Windows 窗体和 ASP.NET 服务器控件与它们自己的默认设计器关联。只有在您为组件或控件定义自定义设计器时才应用 DesignerAttribute

// 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

属性 (Property) 和事件的公共属性 (Attribute)

下表列出了常用于属性 (Property) 和事件的属性 (Attribute)。

属性 (Attribute)

应用于

说明

BrowsableAttribute

属性 (Property) 和事件

指定属性 (Property) 或事件是否应该显示在属性 (Property) 浏览器中。

CategoryAttribute

属性 (Property) 和事件

指定类别的名称,在该类别中将对属性 (Property) 或事件进行分组。当使用了类别时,组件属性 (Property) 和事件可以按逻辑分组显示在属性 (Property) 浏览器中。

DescriptionAttribute

属性 (Property) 和事件

定义一小块文本,该文本将在用户选择属性 (Property) 或事件时显示在属性 (Property) 浏览器底部。

BindableAttribute

属性

指定是否要绑定到该属性 (Property)。

DefaultPropertyAttribute

属性

(将此属性 (Attribute) 插入类声明前。)

指定组件的默认属性 (Property)。当用户单击控件时,将在属性 (Property) 浏览器中选定该属性 (Property)。

DefaultValueAttribute

属性

为属性 (Property) 设置一个简单的默认值。

EditorAttribute

属性

指定在可视设计器中编辑(更改)属性 (Property) 时要使用的编辑器。

LocalizableAttribute

属性

指定属性 (Property) 可本地化。当用户要本地化某个窗体时,任何具有该属性 (Attribute) 的属性 (Property) 都将自动永久驻留到资源文件中。

DesignerSerializationVisibilityAttribute

属性

指定显示在属性 (Property) 浏览器中的属性 (Property) 是否应该(以及如何)永久驻留在代码中。

TypeConverterAttribute

属性

指定将属性 (Property) 的类型转换为另一个数据类型时要使用的类型转换器。

DefaultEventAttribute

事件

(将此属性 (Attribute) 插入类声明前。)

指定组件的默认事件。这是当用户单击组件时在属性 (Property) 浏览器中选定的事件。

除非另外说明,属性 (Property) 和事件的属性 (Attribute) 在代码中紧接在属性 (Property) 或事件声明的前面。如下面的示例所示。

// 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

有关将设计器同组件和控件关联起来的设计时属性 (Attribute) 的信息,请参见扩展设计时支持

除了使用 .NET Framework 类库中定义的属性 (Attribute) 类之外,您还可以定义您自己的属性 (Attribute) 类。有关详细信息,请参考您的编程语言的文档或参阅编写自定义属性

请参见

任务

如何:应用 Windows 窗体控件中的属性

概念

属性与设计时支持

Windows 窗体控件中的属性

其他资源

扩展设计时支持