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

本文关键字:DragDropEffects 什么 区别 Move Copy | 更新日期: 2023-09-27 18:35:30

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

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

程序没有区别。

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

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

如果您在目标上启用了"允许放置",它们提供不同的鼠标光标。

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

但是,以

这种方式实际实现它取决于您。

加一行看看效果:

private void Canvas_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.Copy;
        e.Handled = true; //<<--- Add this line
    }
}