当您选择JvTreeView的多个节点,然后尝试拖动这些节点时,JvTreeView会选择您单击要拖动的节点,而不是启动拖动所有所选节点。您最终只拖动此单个节点。
是否可以在JvTreeView中拖动多个节点?我正在使用Delphi 2007。
更新:奇怪的是,如果我在拖动项目时按住CTRL + SHIFT,我可以成功拖动它们。有什么想法吗?
答案 0 :(得分:2)
假设MultiSelectStyle
是默认[msControlSelect]
,那么您的问题的答案是'当您选择最后一个项目并开始拖动时,您不会释放控制键/ em>的
罪魁祸首在TJvTreeView.WMLButtonDown
JvComCtrls.pas
。当TreeView为MultiSelect时,如果按下'Ctrl',则代码测试,如果未按下'Ctrl',则清除所有项目并选择单击的项目。它应该测试是否已经选中了被点击的项目,如果是,则不执行任何操作。
您可以在不拖动的情况下看到已损坏的行为。多选几个项目,然后用鼠标单击所选项目。 VCL TreeView不会选择或取消选择任何内容,而JVTreeView则取消选择所有项目并选择单击的项目。
答案 1 :(得分:1)
是的,我一直这样做。
当然,Multi-Select需要为True,您可能需要查看TTreeView的MultiSelectStyle。它控制着可以同时选择哪种类型的节点。例如,如果msSiblingOnly设置为true,则只能选择sibblings。
您使用的是dmAutomatic还是dmManual。如果是后者,可能是你在OnMouse *事件中做了一些事情,否定了你之前做出的多重选择。