好!
MultiRow For WinForms 7.0
以Shift Down为例说明:
目前SelectionActions中提供的的ShiftDown动作不太符合我的需求,自己重写了一下,不是很满意,请教版主。
需求:Shift Down按下后,将下一行添加到Selection集合中,同时让该集合中最下面一行作为活动行。(SelectionActions中的动作,始终使集合中第一行为活动行,添加CurrentRowBorderLine效果比较明显)
eg:
Dim intSelectCount As Integer = target.SelectedRows.Count
target.CurrentCellPosition = New CellPosition(target.CurrentRow.Index + 1, 1)
For intSelectIndx As Integer = target.CurrentRow.Index To target.CurrentRow.Index - intSelectCount Step -1
target.AddSelection(intSelectIndx)
Next
上面例子有问题,每次需要先将活动行移动的下一行,然后循环把前面的所有行添加的集合中。有如下问题:
(1)当数据量大的时候,循环比较耗时。
(2)移动活动行的时候(通过CurrentCellPosition),会自动把Selection集合清空,导致这一瞬间,所有选中行的变为非选中状态,颜色变为非选中状态的颜色(白色)。
然后,我循环又把他们加到了Selection集合中,这时他们又变成的选中状态,显示选中色。
这期间,会明显的感觉到画面的闪烁,白蓝之间切换。尤其是选择行超过一页,翻页的时候,最明显。
斑竹有什么好的建议,不吝赐教! |
|