NewCellPosition和CurrentCellPosition的区别
在NewCellPositionNeeded中If e.RowIndex = e.NewCellPosition.RowIndex Then
※1e.NewCellPosition= New GrapeCity.Win.MultiRow.CellPosition(e.RowIndex , "B_SU")
Else
※2GcMultirow1.CurrentCellPosition= New GrapeCity.Win.MultiRow.CellPosition(e.NewCellPosition.RowIndex, e.NewCellPosition.CellIndex)
End If
问题
※1为什么不可以用GcMultirow1.CurrentCellPosition
※2为什么用NewCellPosition也可以,
上面的例子里可以统一用※1吗 在NewCellPositionNeeded事件里不能通过设置CurrentCellPosition来改变CurrentCell的位置。
这是应为NewCellPositionNeeded发的时机是在内部改CurrentCell的过程中。在内部逻辑中改CurrentCell实际上可以理解为3步。
例如,如果本来CurrentCell在(0,0)处,用户用鼠标点击了(1,1). 发生的过程是这样的:
1. 准备把改变CurrentCell。
2. 发NewCellPositionNeeded事件。
3. 把Cell移动到(1,1)。
如果在第二步里改变NewCellPosition属性。第三步就会把Cell移动到NewCellPosition的位置。
但是如果在第二步里改变CurrentCellPosition到其他Cell。在执行第三步的时候,又会把CurrentCell拉回到(1,1)上,所以就不起作用了。 谢谢
页:
[1]