我的VirtualStringTree中有5个节点:
节点#4没有标题,当用户按下VK_DOWN或VK_UP时应该跳过。
当用户点击它时,它也不会被选中。
我编写了这段代码(可行),在使用键盘时跳过所述节点:
if Key = VK_DOWN then
begin
node := VirtualTree.GetNext(VirtualTree.FocusedNode);
if not Assigned(node) then Exit;
data := VirtualTree.GetNodeData(node);
if data^.Caption = '' then
begin
VirtualTree.GetNext(node);
VirtualTree.FocusedNode := node;
VirtualTree.Selected[node] := true;
end;
end
else if Key = VK_UP then
begin
node := VirtualTree.GetPrevious(VirtualTree.FocusedNode);
if not Assigned(node) then Exit;
data := VirtualTree.GetNodeData(node);
if data^.Caption = '' then
begin
VirtualTree.GetPrevious(node);
VirtualTree.FocusedNode := node;
VirtualTree.Selected[node] := true;
end;
end;
问题是节点仍然通过点击它来聚焦。
我尝试禁用节点VirtualTree.IsDisabled[node] := true;
- 但没有运气。
任何人都知道如何实现这一目标?
答案 0 :(得分:4)
处理OnFocusChanging
事件并将False返回到您选择的节点的Allowed
参数。