做了一个“关于”窗口的控件,把“公司图标”、“软件名称”、“版权”等信息定义成属性。本以为很简单的一个东东,却碰到了问题。
公司图标属性实际上是给控件上的一个PictureBox设置图像,定义如下:
public Image 公司图标
{
get {return pictureBox1.Image;}
set {pictureBox1.Image = value;}
}
测试的时候发现在属性窗口中设了图像以后不能清空。就是希望像PictureBox控件的Image属性那样,可以设为空。
于是开始想为什么,想不通。在网上搜,发现这个动作叫做“重置”,在MSDN里搜,发现原来右键旁边那个按钮,会有“重置”和“说明”两项。“重置”就是清空的效果(当时的理解),“说明”就是下面的注释。看了一下我的“公司图标”的“重置”是灰的,郁闷。然后继续搜“重置”,无意中发现“DefaultValue”,在MSDN里搜,终于发现了DefaultValue是用来设置属性的默认值,“重置”就是将属性的值设为自定义的默认值。哈哈,试了一下,搞定。
[DefaultValue(null)] //设置该属性的默认值为空
public Image 公司图标
{
get {return pictureBox1.Image;}
set {pictureBox1.Image = value;}
}