Flex DataGrid / List拖放 - 如何避免复制

时间:2011-07-21 06:35:33

标签: flex

我在DataGrid上使用拖放来重新排序项目。但是,当用户按住Ctrl键时,他可以启动拖动复制操作。如何完全禁用复制? (不仅可以取消掉落,还可以阻止Ctrl +拖动显示(+)图标)

3 个答案:

答案 0 :(得分:6)

这对我有用(对于火花一览表):

<s:List dragEnabled="true" dropEnabled="true" dragMoveEnabled="true"
dragEnter="{event.ctrlKey = false}" dragOver="{event.ctrlKey = false}">
...
</s:List>

答案 1 :(得分:1)

一种方法如下:

  1. 侦听datagrid上的keydown事件。如果用户按住CTRL,则设置脏标志
  2. 在datagrid上侦听dragStart事件。检查脏标志是否设置为true,如果是,则event.preventDefault()应该终止任何拖动。
  3. 不要忘记根据需要重置脏标志。

答案 2 :(得分:0)

To avoid the copying use dragDropHandler() in which you can check weather the cntrl key is pressed while dragging, if yes you can restrict the dragdrop.  

protected function myTree_dragDropHandler(event:DragEvent):void { 
           if(event.ctrlKey== true) {
                 event.preventDefault();
                 cvTree.hideDropFeedback(event);
                 return;
           }
}