之前一直被一个小问题所困,没想到一次不经意的debug让我找到了问题的解决办法。
大家都知道,点击样式为网格式的PB的DW的header区的一列时,该列会自动反黑显示,其实,很多情况下这样的反黑是很不美观的,因此我们所在DW的Clicked()事件中加上一句:
if row=0 then return 1
这样当点击header区上的列标题时就不会反黑了,但是这样随之又带来另一个问题。原本网格式风格的DW可以自由的调整列宽,只要把鼠标移到列标题边,拉动鼠标就可以了,十分方便。现在由于一按下鼠标就 return 1 了,再也不能自动调整列宽了。
之前好长一段时间,要不反黑的美观还是要可以自由调列宽的方便,这种鱼和熊掌不能兼得的困苦一直困扰着我。
直到前几天,一次不经意的debug让我找到了问题的解决办法。
我发现当鼠标处于调整列宽状态时(鼠标形状变为拉动形),鼠标下的对象为空,其它时候都可以取得相应的对象,于是利用这一特点,就可以把点击鼠标和调整列宽的动作区分开来,当是发现是在调整列宽就不return 1,这样就做到了两全其美了。代码很简单,在DW的Clicked()事件中:
if row=0 then if dwo.name<>'' then return 1
其实在网格式的dw中,只要选中"column moving" 和"mouse selection"这两项也可以达到相同的目的.呵呵