DotNetBar for Windows Forms的一些经验

1. 千万不要使用DataGridViewX中的DataGridViewCheckBoxXColumn,而是用DataGridViewCheckBoxColumn

也许会有人觉得既然DataGridViewX提供了DataGridViewCheckBoxXColumn,为什么还要用系统的DataGridViewCheckBoxColumn,难道系统内建的功能会更强大吗?

 

请相信我,系统内建的DataGridViewCheckBoxColumn的功能也许并不强大,但是绝对稳定,理由有二:

a. 使用DataGridViewCheckBoxXColumn,在想选中复选框时几乎无法做到一选必中,必须鼠标移动到某个特定的位置,复选框变色之后点击才能成功,即使我知道这个诀窍,

也无法保证每次都能选中,这对用户来说是一个非常糟糕的体验。

b. 这个理由绝对比上一个理由更加重要,也是困扰了我好几个月的一个问题。话说DataGridViewX要和Form同步变化尺寸,这个需求再正常不过了,但是我有两个窗体,在一段时间修改之后发现DataGridViewX的Anchor属性不起作用了!具体的说并不是完全不起作用,而是在窗体首次出现并最大化(form.WindowState = FormWindowState.Maximized;)时不起作用,窗体正常出现之后再调整窗体大小则可以同步变化大小了,经过很长时间的不明所以,终于下定决心把窗体代码完全简化之后去寻找问题根源,再经过一行行代码的抽丝剥茧之后,好吧,不用我说了,问题的根源就在于DataGridViewCheckBoxXColumn,我使用了它来显示某些是非值的数据,甚至我都不需要删除表格中使用的DataGridViewCheckBoxXColumn,只要隐藏了它,Anchor属性就完全生效了。

 

综上,至少目前我的项目里必须使用DataGridViewCheckBoxColumn,至于DataGridViewCheckBoxXColumn,等到确实有需要它的时候再说吧。

 

至于原因嘛,个人猜测是DataGridViewCheckBoxXColumn的绑定数据的代码有Bug,呵呵。
 

posted on 2012-08-29 00:16  sPhinX  阅读(1314)  评论(0编辑  收藏  举报

导航