【发布时间】:2012-10-11 04:12:03
【问题描述】:
使用VirtualTreeView拖拽操作时默认为[doCopy,doMove]。移动操作用带小方框的箭头指针表示,复制操作用相同的指针图标表示,但旁边加了[+]。
默认情况下,VT 使用复制操作,如果您按下修饰键(SHIFT 键),它会修改操作以移动,因此从指针中删除 [+]。
这是我需要的:
- 反转操作(默认是移动,按下修改键 - 复制),因此也反转指针箭头
- 替换修饰键 - CTRL 而不是 SHIFT
- 读取发生了两个操作中的哪一个的事件并开始复制或移动操作
任何指向正确方向的指针表示赞赏。
【问题讨论】:
-
等等,默认情况下VT使用移动操作,不是吗?当您按 Shift 时会出现那个 + 号,还是我错了?
-
不,复制是默认操作(这对大多数但不是所有用途都是合乎逻辑的),这就是我想扭转它的原因。当您按下 Shift 时,+ 符号消失,表示操作正在移动。 + 的存在表示复制操作。
-
那么恕我直言,这是一个错误(不知道会影响此行为的设置),但应该使用 Shift 修饰符进行复制操作。但是通过更改
OnDragOver事件中的拖放效果(见下文),很容易将行为修改(修复)为您需要的行为。
标签: delphi c++builder virtualtreeview