如何使 VirtualTreeView 的节点允许 TMemo 像多行键盘输入而不是 TEdit 像默认行为?

How to make a VirtualTreeView's Node allow TMemo like multiline keyboard input instead of the TEdit like default behavior?

我正在修改 VirtualTreeView 的 git 文件夹 (Virtual-TreeView-master\Demos\Advanced) 附带的 MultilineDemo。我刚刚删除了多行 'display' 代码并将代码添加到 VST 的 onClick 处理程序以使单击的节点可编辑。

我想将多行文本输入到像 TMemo 这样的节点中,但是按下 enter 或 shift+enter 键完成了编辑。请参见下图。我在 VST 属性 面板中找不到用于修改默认行为的节点的按键事件。我的目标是拥有一个像树一样的控件,其节点能够进行多行输入

我认为我不必 post 我当前应用程序中的任何代码。

您需要实现自己的 IVTEditLink 编辑器,创建一个备忘录控件并处理其按键事件。请参阅 /Demos/Advanced/Editors.pas 单位以了解 vtMemo 类型的值。它几乎可以满足您的需求。它展示了如何创建一个备忘录控件作为节点编辑器以及如何处理编辑器的控件按下事件(在本例中为 EditKeyDown 方法)。