本文共 2038 字,大约阅读时间需要 6 分钟。
本文将介绍 VS.NET 2005 的设计时集成支持,涵盖设计时属性、设计时组件以及如何在项目中添加设计时支持等内容。
设计时属性用于将组件与设计时功能关联。这些属性可以按类或成员级别进行设置,具体分为类型级别属性和成员级别属性。
类型级别属性用于将组件类型与其他组件关联。这些属性通常位于类声明前面。例如:
[DefaultProperty("Text")][DefaultEvent("OnChange")]public class MyTextBox : TextBox{ public MyTextBox() { }} 在上述代码中,DefaultProperty 设置了组件的默认属性,而 DefaultEvent 设置了组件的默认事件。
成员级别属性用于将组件成员与其他组件关联。这些属性通常位于属性定义前面。例如:
[Browsable(true)][Category("Appearance")][DefaultValue("")][Description("获取/设置文本值。")]public string Text{ // ...} 在上述代码中,Browsable 控制属性是否在属性网格中可见,Category 确定属性在属性网格中的分类,DefaultValue 设置属性的默认值,Description 设置属性的描述信息。
组件可以为类型和成员设置多个属性。
设计时组件是提供设计时功能扩展的组件。这些组件利用设计时环境,允许开发人员定制组件行为和用户界面。
设计器提供组件在设计时的行为支持。常见设计器包括 ControlDesigner 及其子类,如 DataListDesigner 和 DropDownListDesigner。这些设计器可以帮助开发人员定制组件的设计时属性和方法。
例如:
[DesignerAttribute(typeof(DataListDesigner))]public class MyList : DataList{ public MyList() { }} 上述代码将自定义控制器 MyList 与设计器 DataListDesigner 关联。
类型转换器负责将组件支持的数据类型与其他数据类型之间进行转换。类型转换器提供属性值在设计时的配置支持,包括数据类型验证、默认值生成等。
例如:
[TypeConverterAttribute(typeof(StringArrayConverter))]public string[] Items{ // ...} 上述代码将控制器属性 Items 与类型转换器 StringArrayConverter 关联。StringArrayConverter 是 .NET 2.0 中新增的类型转换器,用于将逗号分隔的字符串转换为字符串数组。
UI 类型编辑器提供定制用户界面,用于设计时表示和编辑属性值。这些编辑器可以是属性网格中的下拉列表,也可以是 Windows 界面对话框。
例如:
[EditorAttribute(typeof(ListItemsCollectionEditor), typeof(UITypeEditor))]public ListItemCollection Items{ // ...} 上述代码将控制器属性 Items 与编辑器 ListItemsCollectionEditor 关联。ListItemsCollectionEditor 提供对 ListItemCollection 类型的编辑支持。
要为项目添加设计时支持,需要完成以下步骤:
System.Design.dll。System.ComponentModel:用于使用现有设计时属性(如 EditorAttribute、DesignerAttribute 等)。System.Web.UI.Design.WebControls:用于使用现有 Web 控件设计器(如 ButtonDesigner)。System.ComponentModel.Design:用于使用现有编辑器(如 CollectionEditor)。Attribute 类,位于 System 命名空间。System.Web.UI.Design 和 System.Web.UI.Design.WebControls。通过以上步骤,可以为 Web 控件添加设计时支持,提升开发者在设计时的体验。
转载地址:http://ybsfz.baihongyu.com/