乐者为王

Do one thing, and do it well.

数据窗口中高亮一行时出现的问题

高亮数据窗口中的一行很简单,只要在数据窗口控件的rowfocuschanged事件中添加下面的代码就可以了:

1
2
3
4
5
long ll_row = this.GetRow()
if ll_row > 0 then
    this.SelectRow(0, false)
    this.SelectRow(ll_row, true)
end if

不过这样处理后会有些问题,当你点击某一行时该行会显示成边框为深蓝色,背景为白色的矩形,如下图:

pb-highlight-1

这是因为该行中列的样式类型是Edit,可以编辑,所以才会出现上图的效果。由此推断,只要将列设置为不可编辑就行。将一列设为不可编辑有三种方式:TabSequence为0、Edit.DisplayOnly被选中、Protect为1,设置其中任何一种都会使列变为不可编辑。

实践后发现选中Edit.DisplayOnly后还是会出现如上图那样的问题,而在设置TabSequence或Protect后则显示出了完美的高亮效果。

pb-highlight-2

Comments