当我点击单元格(类似于具有选项goEditing:True
和goAlwaysShowEditor:True
的StringGrid
)后,我希望能够直接从VirtualStringTree
编辑单元格(节点)。
我已经设置了toEditable:True
,toEditOnClick:True
和editDelay:0
选项,但是VirtualStringTree
组件需要第二次点击才能进入编辑模式(第一次是将焦点放在单元格上,第二次才是编辑)。
当我点击单元格(类似于具有选项goEditing:True
和goAlwaysShowEditor:True
的StringGrid
)后,我希望能够直接从VirtualStringTree
编辑单元格(节点)。
我已经设置了toEditable:True
,toEditOnClick:True
和editDelay:0
选项,但是VirtualStringTree
组件需要第二次点击才能进入编辑模式(第一次是将焦点放在单元格上,第二次才是编辑)。
我认为无法配置你想要的内容,但是你可以使用例如 OnFocusChanged
事件并手动调用编辑模式,代码如下:
procedure TForm1.VirtualStringTree1FocusChanged(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex);
begin
Sender.EditNode(Node, Column);
end;
获取 OnEditing 事件并将 Allowed 标志设置为 true。
Procedure TForm1.vtListEditing(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; var Allowed: Boolean);
begin
Allowed := true;
end;