首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

/*

本章讨论ASP.NET控件的设计时功能。

*/

你不会想永远只做自己玩玩的控件吧?

最终你希望自己的控件成为一个真正的产品,或获得商业回报,或免费服务大众。当你的控件呈现在别人面前时,它应该是精工细作的,精工细作不仅表现在功能强大上,而且表现在界面美观、操作直观上。

简而言之,就是要让用户在使用你的控件是一个愉悦的旅程。此时,控件的设计时功能就显得极为重要了。

什么是设计时功能?我们通常说Visual Studio是一个“所见即所得”的IDE工具,设计时功能就是“所见”的部分,也就是说编辑器和页面设计者交互的功能。

6.1  设计时功能综述

.NET提供了丰富的设计时接口,这些接口可以被Visual Studio等IDE工具利用,提供丰富的设计时功能,这些设计时功能有的通用于Winforms开发和ASP.NET开发,有的专用于ASP.NET开发。特定到ASP.NET来讲,它的运行时支持机制主要包括:设计器(Designer)、类型转换器(TypeConverter)、UI类型编辑器(UITypeEditor),如图6-1所示。

DesignTimeStructure.bmp

图6-1  ASP.NET运行时构架

图6-1展示了设计时支持机制与设计时环境的交互关系,窗体(Form)设计器主要和设计器交互,属性窗口和三种机制都有交互。

而定制控件的设计时行为,则需要通过Attribute来关联,设计时Attribute有很多,其中不少我们已经使用过了,常见的设计时Attribute如表6-1所列。

表6-1  常见的设计时Attribute

Attribute

应用于

   

BrowsableAttribute

属性事件

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

CategoryAttribute

属性事件

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

Description

Attribute

属性事件

定义描述文本,该文本将在用户选择属性或事件时显示在属性浏览器底部

BindableAttribute

属性

指定是否要绑定到该属性

DefaultProperty

Attribute

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

DefaultValue

Attribute

属性

为属性设置一个简单的默认值

EditorAttribute

属性

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

续表 

Attribute

应用于

   

Localizable

Attribute

属性

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

Designer

Serialization

Visibility

Attribute

属性

指定显示在属性浏览器中的属性是否应该(以及如何)序列化在页面源代码中

TypeConverter

Attribute

属性

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

DefaultEvent

Attribute

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

DesignerAttribute

指定控件的设计器

DesignerOnly

Attribute

属性

指定只能在设计时设置属性

ReadOnlyAttribute

属性

指定属性在设计时只读

Parenthesize

PropertyName

Attribute

属性

属性名显示在控号中

NotifyParent

PropertyAttribute

属性

用于嵌套属性改变时通知其父级属性

RefreshProperties

Attribute

属性

指定刷不刷新控件属性或刷新设计器视图

不要畏惧这些Attribute的数量,正是有这么多Attribute可用于设计时,设计时功能才会这么丰富。而且我们最常用的Attribute是表6-1中加粗体标记的,对于这些Attribute,我们在之前或之后都会有详细说明和具体应用实例。

本章,我们将重点对DesignerAttribute、EditorAttibute、TypeConverterAttribute这三个相对复杂的功能展开讨论。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论