博客
关于我
VS.Net 2005 Design-Time Integration
阅读量:449 次
发布时间:2019-03-06

本文共 2038 字,大约阅读时间需要 6 分钟。

VS.NET 2005 设计时集成支持概述

本文将介绍 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 及其子类,如 DataListDesignerDropDownListDesigner。这些设计器可以帮助开发人员定制组件的设计时属性和方法。

例如:

[DesignerAttribute(typeof(DataListDesigner))]public class MyList : DataList{    public MyList()    {    }}

上述代码将自定义控制器 MyList 与设计器 DataListDesigner 关联。

类型转换器

类型转换器负责将组件支持的数据类型与其他数据类型之间进行转换。类型转换器提供属性值在设计时的配置支持,包括数据类型验证、默认值生成等。

例如:

[TypeConverterAttribute(typeof(StringArrayConverter))]public string[] Items{    // ...}

上述代码将控制器属性 Items 与类型转换器 StringArrayConverter 关联。StringArrayConverter 是 .NET 2.0 中新增的类型转换器,用于将逗号分隔的字符串转换为字符串数组。

UI 类型编辑器

UI 类型编辑器提供定制用户界面,用于设计时表示和编辑属性值。这些编辑器可以是属性网格中的下拉列表,也可以是 Windows 界面对话框。

例如:

[EditorAttribute(typeof(ListItemsCollectionEditor), typeof(UITypeEditor))]public ListItemCollection Items{    // ...}

上述代码将控制器属性 Items 与编辑器 ListItemsCollectionEditor 关联。ListItemsCollectionEditor 提供对 ListItemCollection 类型的编辑支持。


添加设计时支持到项目

要为项目添加设计时支持,需要完成以下步骤:

  • 引用 .NET Framework 组建:在项目中添加引用 System.Design.dll
  • 包含必要命名空间
    • System.ComponentModel:用于使用现有设计时属性(如 EditorAttributeDesignerAttribute 等)。
    • System.Web.UI.Design.WebControls:用于使用现有 Web 控件设计器(如 ButtonDesigner)。
    • System.ComponentModel.Design:用于使用现有编辑器(如 CollectionEditor)。
  • 创建自定义设计时属性:继承 Attribute 类,位于 System 命名空间。
  • 使用现有设计器、类型转换器和编辑器:在代码文件中包含相应的命名空间,例如 System.Web.UI.DesignSystem.Web.UI.Design.WebControls
  • 通过以上步骤,可以为 Web 控件添加设计时支持,提升开发者在设计时的体验。

    转载地址:http://ybsfz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现reverse letters反向字母算法(附完整源码)
    查看>>
    Objective-C实现ripple adder涟波加法器算法(附完整源码)
    查看>>
    Objective-C实现RodCutting棒材切割最大利润算法(附完整源码)
    查看>>
    Objective-C实现Romberg算法(附完整源码)
    查看>>
    Objective-C实现round robin循环赛算法(附完整源码)
    查看>>
    Objective-C实现RRT路径搜索(附完整源码)
    查看>>
    Objective-C实现rsa 密钥生成器算法(附完整源码)
    查看>>
    Objective-C实现RSA密码算法(附完整源码)
    查看>>
    Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
    查看>>
    Objective-C实现segment tree段树算法(附完整源码)
    查看>>
    Objective-C实现selection sort选择排序算法(附完整源码)
    查看>>
    Objective-C实现sha256算法(附完整源码)
    查看>>
    Objective-C实现shell sort希尔排序算法(附完整源码)
    查看>>
    Objective-C实现SinglyLinkedList单链表算法(附完整源码)
    查看>>
    Objective-C实现skew heap倾斜堆算法(附完整源码)
    查看>>
    Objective-C实现Skip List跳表算法(附完整源码)
    查看>>
    Objective-C实现slack message松弛消息算法(附完整源码)
    查看>>
    Objective-C实现slow sort慢排序算法(附完整源码)
    查看>>
    Objective-C实现tanh函数功能(附完整源码)
    查看>>
    Objective-C实现z-algorithm算法(附完整源码)
    查看>>