Delphi:第一次单击后获得VirtualStringTree的编辑模式
我想在单击单元格后直接从Delphi:第一次单击后获得VirtualStringTree的编辑模式,delphi,editing,virtualtreeview,tvirtualstringtree,Delphi,Editing,Virtualtreeview,Tvirtualstringtree,我想在单击单元格后直接从VirtualStringTree编辑单元格(节点)(类似于StringGrid,带有选项goEditing:True和goAlwaysShowEditor:True) 我已经设置了toEditable:True、toEditOnClick:True和editDelay:0选项,但是VirtualStringTree组件在第二次单击后进入编辑模式(第一次是聚焦单元格,第二次是编辑)我认为没有办法配置您想要的内容,但是,您可以使用例如OnFocusChanged事件,并使用
VirtualStringTree
编辑单元格(节点)(类似于StringGrid
,带有选项goEditing:True
和goAlwaysShowEditor:True
)
我已经设置了
toEditable:True
、toEditOnClick:True
和editDelay:0
选项,但是VirtualStringTree
组件在第二次单击后进入编辑模式(第一次是聚焦单元格,第二次是编辑)我认为没有办法配置您想要的内容,但是,您可以使用例如OnFocusChanged
事件,并使用如下代码手动调用编辑模式:
procedure TForm1.VirtualStringTree1FocusChanged(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex);
begin
Sender.EditNode(Node, Column);
end;
上述解决方法的问题是,即使通过键盘选择不同的节点,也会调用编辑模式,这可能不是您想要的。获取事件OneEdit并将Allowed标志设置为true
Procedure TForm1.vtListEditing(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; var Allowed: Boolean);
begin
Allowed := true;
end;
不客气!但是,键盘焦点的改变在那里是相当烦人的。如果按page down(向下翻页)键,然后按page down(向下翻页)键移动,节点开始被编辑,看起来不太好。为什么要这样做?这是一种建议的方法,可以在单击后开始编辑节点文本,就像在Windows资源管理器中一样。它不会导致您在键盘导航中提到的问题。