博客
关于我
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 及其子类,如 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 类型编辑器

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

例如:

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

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


添加设计时支持到项目

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

  • 引用 .NET Framework 组建:在项目中添加引用 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/

    你可能感兴趣的文章
    Python:生成“元组集“;来自“元组列表“;不考虑顺序
    查看>>
    Python:生成具有趋势的随机时间序列数据(例如周期性、指数衰减等)
    查看>>
    Python:用渐进式数字重命名列表中的重复项而不对列表进行排序
    查看>>
    Python:矩形参数无效
    查看>>
    Python:语法进阶
    查看>>
    Python:调用复制函数时调用 Python 对象时超出了最大递归深度
    查看>>
    Python:这两个 import 语句有什么区别?
    查看>>
    Python:通过串口从 Velleman k8090 读取数据
    查看>>
    python:遍历具有列表值的字典
    查看>>
    Python:降低精度 pandas 时间戳数据帧
    查看>>
    python:非阻塞子进程,检查标准输出
    查看>>
    PythonABC多重继承
    查看>>
    Pythonargparse中的多个参数
    查看>>
    Python关于 *args 和 **kwargs 参数的详解(全)
    查看>>
    Pythonfrozenset散列算法/实现
    查看>>
    PythonGTK+3:通过单击列对树视图进行排序
    查看>>
    pythonnumpy生成二进制流_python/numpy生成的二进制文件,由C读取
    查看>>
    pythonsign函数_对python函数签名的方法详解 用python怎么写一个自签名证书
    查看>>
    PythonStudy
    查看>>
    Pythons__IMPORT__未按预期工作
    查看>>