C# 什么';DragDropEffects.Copy和DragDropEffects.Move之间的区别是什么?

C# 什么';DragDropEffects.Copy和DragDropEffects.Move之间的区别是什么?,c#,drag-and-drop,copy,move,effects,C#,Drag And Drop,Copy,Move,Effects,我在互联网上到处寻找这个问题的答案,但我似乎找不到答案 DragDropEffects.Copy和DragDropEffects.Move之间有什么区别 在DragEnter上的代码中,我将其设置为: private void Canvas_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = D

我在互联网上到处寻找这个问题的答案,但我似乎找不到答案

DragDropEffects.Copy和DragDropEffects.Move之间有什么区别

在DragEnter上的代码中,我将其设置为:

private void Canvas_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.Move;
    }
但是如果我使用

private void Canvas_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.Copy;
    }
节目没有什么不同


有人能解释一下区别吗

如果在目标上启用了“允许拖放”,则它们提供不同的鼠标光标。

唯一的区别是光标,用户可以从光标外观判断程序是移动还是复制。复制光标有+,移动光标没有


但是,这取决于您是否真正以这种方式实施。

也许您需要自己处理差异。通过移动,您希望在项目被删除后从源中删除元素。可能与“DraggedFrom side”如何根据效果处理它有关。您可以实现一个可拖动控件,该控件在使用
Move
效果拖动时删除对象。除光标外,如果在初始DoDragDrop和DragEnter事件上指定的效果(它是一个标志枚举)之间不匹配,它将显示“无”光标,您将无法拖动。