Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中拖放?_C#_Drag And Drop - Fatal编程技术网

在C#中拖放?

在C#中拖放?,c#,drag-and-drop,C#,Drag And Drop,如何在我的程序和资源管理器之间实现拖放 仅限windows应用程序有一篇关于CodeProject的好文章介绍了如何做到这一点: 此示例项目列出了一个文件夹 充满文件,并允许您拖放 将它们放入资源管理器。你也可以 从资源管理器拖动到示例中, 您可以使用Shift和Ctrl键 键来修改动作,就像 在浏览器中 开始将操作拖动到 Explorer,我们实现了itemrag 来自列表视图的事件 在拖动项目后调用 而不是几个像素。我们只是打电话 DoDragDrop传递要删除的文件 拖拽包装在数据对象中

如何在我的程序和资源管理器之间实现拖放
仅限windows应用程序

有一篇关于CodeProject的好文章介绍了如何做到这一点:

此示例项目列出了一个文件夹 充满文件,并允许您拖放 将它们放入资源管理器。你也可以 从资源管理器拖动到示例中, 您可以使用Shift和Ctrl键 键来修改动作,就像 在浏览器中

开始将操作拖动到 Explorer,我们实现了
itemrag
来自
列表视图的事件
在拖动项目后调用
而不是几个像素。我们只是打电话
DoDragDrop
传递要删除的文件 拖拽包装在
数据对象中
。你 我真的不需要理解
DataObject
-它实现
IDataObject
中使用的接口 沟通


只要您使用WinForms,它实际上非常简单。请参阅以下两篇文章开始学习:


以防万一,您正在使用WPF,应该会有所帮助。

在拖动enter事件中添加此选项(这将在拖动文件时更改光标类型)

然后在DragDrop事件中,您需要处理您想要做的事情。 并将AllowDrop属性设置为true

什么是“程序”?Windows应用程序?
 private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        // If file is dragged, show cursor "Drop allowed"
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.Copy;
        else
            e.Effect = DragDropEffects.None;
    }