C#控件开发(一)
一、 摘要:
这篇文章将告诉你如何开发与.NET属性窗口交互的RAD组件
二、 内容:
简介
属性窗口可以做什么
基础知识:使用Attribute来订制属性窗口的显示
扩展属性和字符串转换:TypeConverter和属性窗口
编写和显示订制的类型
提供可交互的属性视图
我们同样可以使用它
结论
三、 简介
在Visual Basic中,属性窗口是真正实现快速应用开发的一个关键工具(RAD:Rapid Application Development)。在Visual Studio .NET中,属性窗口提供更多的特性来支持快速开发。如果你在使用Visual Studio .NET开发环境编写组件或其他对象,可以用到属性窗口提供给的特性来丰富你的组件的设计时特性。
四、 属性窗口可以做什么
以前的属性窗口版本处理基于COM的信息并且显示控件的内在属性。一个COM组件的公开API一般用IDL(Interface Definition Language)来声明,并且都有自己的属性。比如:nonbrowsable可以让属性窗口不显示它,或者是bindable可以让属性实现数据绑定。其他的显示特性,比如standard value list(标准值列表)和categorized properties(属性类别)需要组件实现COM接口IPerPropertyBrowsing和ICategorizedProperties。.NET framework和属性窗口以一种更加简单、统一的方式提供这些支持,同时有更多的新特性。
自然,.NET属性窗口继续支持以前版本的功能,他从ITypeInfo中得到类型信息并且支持上面提到过的特性。不过,如果要使用功能强大的新特性,就必须用managed code来实现组件。下面是列出一些新特性:
1. lMetadata attribute(元数据特性)
属性的特性很大程度上决定了属性窗口怎么和你的组件交互。特性可以很方便的让组件编写者来控制属性在属性窗口中是否可见、如何分类、是否可以包括在多选中、是否影响其他属性的值。这些特性都可以很方便地使用。
2. lHierarchical support(继承支持)
属性还可以拥有逻辑子属性。
3. lGraphical value representation(属性值图形化表示)
除了可以提供属性值的文字表示外,我们还可以提供属性值的图形化表示。
4. lCustom type editing(订制类型编辑)
组件可以提供自定义的用于属性编辑的用户界面,比如日期控件的日期属性的选择方式,或者是色彩控件的颜色选取方式。现在,不再由属性窗口来决定所支持的类型,而是组件来决定。Framework提供了很多工具来支持所有内嵌类型的编辑。
5. lExtensible views(扩展属性视图)
像“属性页(property tabs)”一样,组件可以在属性和事件上增加自己的视图,这样在设计状态就可以支持属性的图形化了。
6. lReusable component(重用组件)
.NET属性窗口主要是使用System.Windows.Forms.PropertyGrid控件组成的,我们同样可以在我们的应用程序运行时使用它的特性。
很明显,属性窗口还有更多的特性。这篇文章就是告诉你如何利用这些特性来扩展你自己的组件的特性。
这篇文章将告诉你如何开发与.NET属性窗口交互的RAD组件
二、 内容:
简介
属性窗口可以做什么
基础知识:使用Attribute来订制属性窗口的显示
扩展属性和字符串转换:TypeConverter和属性窗口
编写和显示订制的类型
提供可交互的属性视图
我们同样可以使用它
结论
三、 简介
在Visual Basic中,属性窗口是真正实现快速应用开发的一个关键工具(RAD:Rapid Application Development)。在Visual Studio .NET中,属性窗口提供更多的特性来支持快速开发。如果你在使用Visual Studio .NET开发环境编写组件或其他对象,可以用到属性窗口提供给的特性来丰富你的组件的设计时特性。
四、 属性窗口可以做什么
以前的属性窗口版本处理基于COM的信息并且显示控件的内在属性。一个COM组件的公开API一般用IDL(Interface Definition Language)来声明,并且都有自己的属性。比如:nonbrowsable可以让属性窗口不显示它,或者是bindable可以让属性实现数据绑定。其他的显示特性,比如standard value list(标准值列表)和categorized properties(属性类别)需要组件实现COM接口IPerPropertyBrowsing和ICategorizedProperties。.NET framework和属性窗口以一种更加简单、统一的方式提供这些支持,同时有更多的新特性。
自然,.NET属性窗口继续支持以前版本的功能,他从ITypeInfo中得到类型信息并且支持上面提到过的特性。不过,如果要使用功能强大的新特性,就必须用managed code来实现组件。下面是列出一些新特性:
1. lMetadata attribute(元数据特性)
属性的特性很大程度上决定了属性窗口怎么和你的组件交互。特性可以很方便的让组件编写者来控制属性在属性窗口中是否可见、如何分类、是否可以包括在多选中、是否影响其他属性的值。这些特性都可以很方便地使用。
2. lHierarchical support(继承支持)
属性还可以拥有逻辑子属性。
3. lGraphical value representation(属性值图形化表示)
除了可以提供属性值的文字表示外,我们还可以提供属性值的图形化表示。
4. lCustom type editing(订制类型编辑)
组件可以提供自定义的用于属性编辑的用户界面,比如日期控件的日期属性的选择方式,或者是色彩控件的颜色选取方式。现在,不再由属性窗口来决定所支持的类型,而是组件来决定。Framework提供了很多工具来支持所有内嵌类型的编辑。
5. lExtensible views(扩展属性视图)
像“属性页(property tabs)”一样,组件可以在属性和事件上增加自己的视图,这样在设计状态就可以支持属性的图形化了。
6. lReusable component(重用组件)
.NET属性窗口主要是使用System.Windows.Forms.PropertyGrid控件组成的,我们同样可以在我们的应用程序运行时使用它的特性。
很明显,属性窗口还有更多的特性。这篇文章就是告诉你如何利用这些特性来扩展你自己的组件的特性。