老外的回答:
DefaultValue has nothing to do with setting the inital value of the property as defined in the documentation for DefaultValueAttribute:
You can create a DefaultValueAttribute with any value. A member's defaultvalue is typically its initial value. A visual designer can use the defaultvalue to reset the member's value. Code generators can use the default
values also to determine whether code should be generated for the member.
一位网友:
DefaultValue的作用:不是提供设计时的默认值,他的作用是 当你在IDE的属性栏里 输入或选择的值 与 你DefaultValue相同时,这个值不变黑【加粗显示】。
补充一下,就是当你在设计视图中在属性编辑器中,把属性值设置成默认值时,该值就不再加粗显示。明白?他只有这么一个作用,你设置的值跟他DefaultValue一样时,他不加粗显示,再没别的用处。
问题就是有时你在编辑器的属性里看到他已经默认了,所以就当是选中了,所以就不设置了,而你的控件里却没有设置默认值(不是设置DefaultValue),从而导致你总感觉莫名其妙的问题。
属性看起来没有变粗有两种情况:一是设置了DefaultValue,而你没有自己选择或输入值,二是选择或输入了一个值与DefaultValue值一样,你看不出来。
当然DefaultValue不是可以任意设置的,他得设置成跟这个属性相同的类型,不然重置时就会出现类似提示:
---------------------------
Microsoft Visual Studio
---------------------------
类型“System.String”的对象无法转换为类型“YongFa365.Controls.NumTextBox.NumTextBox+NumTextBoxType”。
---------------------------
DefaultValue“不是提供设计时的默认值”。仅仅起到重置属性,不生成代码的作用。默认值在属性定义中对应的private处可设定。
阅读(4723) | 评论(0) | 转发(0) |