博客
关于我
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/

    你可能感兴趣的文章
    pandas.DataFrame.copy(deep=True) 实际上并不创建深拷贝
    查看>>
    pandas.read_csv()的详解-ChatGPT4o作答
    查看>>
    PANDAS.READ_EXCEL()输出‘;溢出错误:日期值超出范围‘;而不存在日期列
    查看>>
    pandas100个骚操作:再见 for 循环!速度提升315倍!
    查看>>
    Pandas:如何根据其他列值的条件对列进行求和?
    查看>>
    Pandas:对给定列求和 DataFrame 行
    查看>>
    Pandas、Matplotlib、Pyecharts数据分析实践
    查看>>
    Pandas中文官档~基础用法2
    查看>>
    Pandas中文官档~基础用法5
    查看>>
    Pandas中文官档~基础用法6
    查看>>
    Pandas中的GROUP BY AND SUM不丢失列
    查看>>
    pandas交换两列
    查看>>
    pandas介绍-ChatGPT4o作答
    查看>>
    pandas去除Nan值
    查看>>
    pandas实战:电商平台用户分析
    查看>>
    Pandas库常用方法、函数集合
    查看>>
    pandas打乱数据的顺序
    查看>>
    pandas改变一列值(通过apply)
    查看>>
    Pandas数据分析的环境准备
    查看>>
    Pandas数据可视化怎么做?用实战案例告诉你!
    查看>>