6

我已经在整个互联网上寻找这个问题的答案,但我似乎找不到它。

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;
    }

程序没有区别。

有人可以解释一下区别吗?

4

3 回答 3

8

如果您在目标上启用了 Allow Drop,它们会提供不同的鼠标光标。

于 2012-05-28T18:39:19.847 回答
5

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

但是,以这种方式实际实施它取决于您。

于 2012-05-28T18:40:09.177 回答
0

再添加一行看看效果:

private void Canvas_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.Copy;
        e.Handled = true; //<<--- Add this line
    }
}
于 2021-08-18T10:41:21.290 回答