使用DEV express控件radiogroup无法显示默认值的问题解读

 1、使用DevExpress.XtraBars.Bar控件点击如下图所示的地方可以灵活选择子条目的类型。

图片

2、弹出如下对话框并选择红框中的内容

图片

3、新增后只有一个空的矩形框,需要在VS2010属性侧边栏如下图操作

图片
4、然后如下图操作添加RadioGroup中的成员

图片

然后弹出对话框,即将迎来一个坑!
图片

想当然认为配置数值取值范围不大,int16,即short型足够了。
5、指定描述和值后的样子是这样的

图片

6、在代码中给这个BarItem(命名为barDateRangeSelect)给其赋值初始值,如果默认值在以上条目的取值中,将会默认选取状态。
代码如下:在构造函数中添加
this.barDateRangeSelect.EditValue = 4;

7、运行代码后,发现程序并没有默认选取在测试的那个小选择点上。

8、百思不得其解,百度千百遍不得答案。最后回到那个有坑的图上来,我选取的是int16的数据类型,我赋值个4给他有错吗?答案在如下图上

9、后来实在没办法在就属性栏也可以指定其editValue属性值,结果“奇迹”发生了,默认值如期而至出现了。奇迹只能通过代码可以解读!

图片

10、任何操作会忠实记录在源文件中,查看XXX.Designer的源文件,如下图所示 

图片
11、里面有(short)的强制类型转换。把这部分代码剪切后贴到原来构造函数的位置。重新运行程序。发现默认值是选取状态。
12、测试把成员类型选择为int32,把成员值也选择为int32指定不同的值后,代码是这样的。
图片
其它的地方代码是这样的
图片
13、真相浮出水面,是最初那个最不经意的int16类型指定做的孽。那里指定是int16,你就必须使用(short)强制转换赋值。不然直接赋值4,系统会默认是int32数据类型。尽管值是一样的4,但是类型不同就不能一样对待,就像有些人当了官以后周围的人对他跟以前不一样了,自己也和以前的不一样了一个道理!这就进入一个哲学的范畴,“她还是原来的她吗?”,渭河还是原来一起走过的那条渭河吗?  所以用这种控件,看似不起眼的类型不要想当然选择才行。同样如果是string类型,那赋值时要给editValue符字符串,尽管符数字程序运行也可以取到值,并不会任何错误。问题是你的默认选项出不来。






 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值