4.7 实现自定义属性
在本章前面的章节中我们实现的许多功能都是借助于系统提供的设计时元数据属性支持实现的 ,如:
显示属性描述信息的Description 属性
[Description("描述文本")]
指定属性在属性窗口中类别的Category 设计属性
[Category(" 属性窗口中的类别名称")]
指定属性编辑器的Editor 设计属性
[Editor(typeof(FileNameEditor), typeof(UITypeEditor))]
指定属性类型转换器的TypeConverter 设计属性
[TypeConverter(typeof(SolidCoordinateConverter))]
这些都是系统提供的,每个属性都有它自己的功能。那么如果我们想自定义一个设计属性,实 现自定义的功能,该怎么实现呢?要设计自定义属性,仅需要直接或间接地从System.Attribute 派生即可,与传统类功能完全一样。我们既可以使用System.Attribute 来定义控件设计期控制, 也可以用System.Attribute 指定运行时的控制。
本节就以一个示例演示控件中的设计属性是怎么实现的。首先还是先说明一下本节控件属性要 实现的功能,如图4-35 所示。
此控件具有一个Num 属性,允许开发人员指定一个值。在控件的属性上指定了一个NumValidate 类型的验证属性,该属性需要传入两个参数,供开发人员指定区间,如果在属性窗口中指定的属性 不在区间内,则会有警告提示(如图4-36 中红色警告提示)。
图4-36 控件设计属性示例
时间: 2024-12-17 19:46:20