Treevie当前节点被移动或删除后,怎样才能使焦点留在原来的位置上?
aaaa
|---111
|---222-→当前节点被移动到最后
|---333
|---444
|---555
|---666
节点222被移动,333节点获得焦点
aaaa
|---111
|---333-→ 变为当前节点
|---444
|---555
|---666
|---222
------解决方案--------------------------------------------------------
anode := node.GetNext;
node.delete;
anode.Selected;
------解决方案--------------------------------------------------------
先记录下个获得焦点的Node,删除当前Node后,再设置记录的Node为选中即可
------解决方案--------------------------------------------------------
//SetFocuseNode(当前待删除节点)
procedure SetFocuseNode(curNode : TcxTreeListNode);
begin
if curNode.GetNext <> nil then
curNode.GetNext.Selected := true
else
if curNode.GetPrev <> nil then
curNode.GetPrev.Selected := true;
curNode.Delete;
end;
------解决方案--------------------------------------------------------
类似代码
//移动前
TPoint:=待移动节点的Pos;
//移动后
if Assigned(TreeView.获取NodeByPoint(TPoint)) then
TreeView.获取NodeByPoint(TPoint).设置焦点.
方法和函数都有的,不记得名字了,意思就这样吧