用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
zoulng的公告
文章分类
存档

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

组件属性的缺省值有两种指定方法:
一、使用属性的特性类来描述
比如如下声明一个类的属性
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... ) | 编辑| 举报| 收藏

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

  • 发表评论
  • 评论内容:
  •  
Copyright © zoulng
Powered by CSDN Blog