原创 定义组件属性的缺省值收藏

组件属性的缺省值有两种指定方法:
一、使用属性的特性类来描述
比如如下声明一个类的属性
public class MyClass
{
private int myProperty;
[DefaultValue(3)]
public int MyProperty
{
get{ return myProperty;}
set
{
if(myProperty!=value)
myProperty=value;
}
}
....
}
更为通用的特性描述是这样定义的 [DefaultValue(typeof(<MyType>),<FormatString>)]  其中<MyType>是Color,Font,Point,Int,String,float...等常见数据类型,<FormatString>就是<MyType>的ToString()方法输出的格式文本字串(通常是这样,当然如果类型在实现ConvertFrom时定义的格式不同就另当别论了),下面是例子:
[DefaultValue(typeof(Color),"White")]以及
[DefaultValue(typeof(Point),"{X=110,Y=120}")]等等...
二、使用ShouldSerialize<PropertyName>方法
这种方法的特殊性在于方法的命名上有约定,命名必须以ShouldSerialize开头,然后返回类型必须是bool类型,方法实现中要定义该属性的与缺省值的比较逻辑,如果设计器在调用这个方法之后返回true,就粗体显示属性值,这通常用于一些很复杂的类属性,如Font或自定义类型。另外,一般优良的设计都还同时实现Reset<PropertyName>方法,以在设计器中激活“重置”菜单项。
关于组件属性的特性设定请看我整理的《编写与.net属性窗口交互的RAD组件》

发表于 @ 2005年03月23日 23:28:00|评论(loading...)

新一篇: GDI+托管代码坐标变换矩阵复位问题 | 旧一篇: 好像有BUG,发表和查看我的文档的时候报错了

用户操作
[即时聊天] [发私信] [加为好友]
蓝鬼
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
文章分类
收藏
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 蓝鬼