当我们在Visual Studio添加一个自定义控件时,它都会给我们以下默认的代码。
在这个控件中有个默认的属性"Text",在这个属性有[DefaultValue("")]相应的特性,来给该属性设置默认值。以前一直
想不明白微软是怎么实现的,直到昨天看了《你必须知道的.Net》中讲“特性”这一章受到了启发。于是我马上去试试,
还真的可以。废话少说,来看看我的实现方法。
首先我们先创建一个自己默认值特性SelfDefaultValueAttribute:
接着我们创建一个自己的控件父类SelfControl:
这个控件只有一个属性"Name"默认值为空。说明一下的是,在这里我们用到了反射的机制,所以我们要引入空间:
System.Reflection。
现在,我们就可以创建属于自己定义的控件了。
好了,终于完成了。那我们现在来测试一下。
最后的结果就是:
由于我们没给控件的高度设置默认值、高度类型Int,所以高度默认为0;而名字和标签类型为String,所以为空。