内容显示页
 
类别:.Net + C# | 浏览(2099) | 2009-5-13 21:37:02

今天又加班了一小时,害得老婆骂,就是因为这该死的东西,不过现在终于弄清了,拿出来凉凉。

今天快下班时,我发现我发明的NumTextBox不好使了,具体症状是:有时起作用,有时不起作用,有时在属性栏里看到的属性自己变了,我发誓,我决对没动他,

郁闷的要死,每天都是我要下班的时候,就来问题,解决吧。

本以为是因为我删除了这个文件AssemblyInfo.cs,因为这个文件里有一个[assembly: Guid("407713ee-649a-4969-913e-8340993a3a6c")],我想,不会是因为没有这个东西了,不定期的,程序就会变一下,从而导致程序认不出来了,所以就疯了?可能哦,于是,想加一个,不成,没加的地方,难道vs不上删除,所以也就不让加?可能哦,我现在可以非常相信微软,因为我有过很多想法,后来发现微软他老人家已经帮实现了,次数太多了,所以现在对他的东西,我是很相信,如果有问题,那肯定是自己还不够了解罢了。重新建一个吧,……%#¥#·!·!问题多多,不过半个多小时后,还是可以了,还有我想不人进因为我设置了一个默认值的原因吧,所以呢。。

进入主题:

难道是不能用Numeric?试了试,应该不是这个问题,因为批量替换后,问题依旧。

修改控件里面的:DefaultValue(NumTextBoxType.Numeric), 为 DefaultValue(NumTextBoxType.String) 或删除后,问题一直没出现。

看来真跟DefaultValue有关,不管他有关没关了,再不回家老婆可要生气了,先回家。

回家后,被批后。。。

我想了想,以前加了个友情链接,是专门研究winform控件的,正好打开看看,没想到他上面竟然有一个ComboBoxTree,我研究了两天才研究出来的东西,他上面竟然就有,而且可以拖动大小,不管他,我先不研究他,登录我的CodeProject.com上的帐号,把他提供的那个地址加到收藏夹里。以后研究了,因为现在的已经很好用了,改天放上来。不过总感觉我改的那个,太没思路了。

偏了,我感觉我成功不了的原因,可能就是观注的东西太多了,走着走着就走远了。忘记刚才主要是做什么了。

给这哥们发了个邮件,说明可能是DefaultValue问题,发了邮件后,发现,其实我已经把问题提出来了呀,先到网上找找吧。终于,拨云见日:

.net 自定义控件里 DefaultValue到底有什么用呢?

老外的回答:

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“不是提供设计时的默认值”。仅仅起到重置属性,不生成代码的作用。


引用本页地址:http://www.yongfa365.com/item/Winform-UserContrl-DefaultValue.html
 
 
相关链接
 
网友评论:
1 chakman - 2009-5-14 21:06:56
一个好玩的人,不过真的不知道你想干什么,呵呵.
 
2 匿名网友 - 2010-9-18 12:51:48
魂牵梦萦
 
3 匿名网友 - 2010-11-11 15:32:19
挺有用
 
4 匿名网友 - 2011-3-19 9:22:37
多谢了,解决了我的疑惑
 
5 怀化SEO - 2011-8-20 11:52:46
正在的它呢!
 
6 匿名网友 - 2011-9-21 21:24:33
也帮我解决了一个问题,谢谢!
 
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片 看不清? 换张图试试
 
     
 
 
文章分类
 
 
.Net + C#(73)
 
 
ASP+VBS(161)
 
 
 
Linux(10)
 
 
 
web 2.0(26)
 
 
 
 
 
心程(68)
 
生活(97)
 
 
     

Power by :柳永法(yongfa365)'Blog  | 京ICP备07011491号  QQ:64049027  E-mail:64049027@qq.com yongfa365'CodePlex yongfa365'CodeGoogle

申请友情链接 要求:跟本站主题相类似正规网站,双方交换为首页位置

转载请注明来源,以便后人及时得到最新、修正、加强版!!!