繁体   English   中英

在 C# 中拖放?

[英]Drag and Drop in C#?

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

只要您使用的是 WinForms,它实际上非常简单。 请参阅这两篇文章以帮助您入门:

如果您使用的是 WPF,本教程这个 SO 线程应该会有所帮助。

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

此示例项目列出了一个包含文件的文件夹,并允许您将它们拖放到资源管理器中。 您也可以从 Explorer 中拖动到示例中,并且可以使用 Shift 和 Ctrl 键来修改操作,就像在 Explorer 中一样。

使用 Windows Explorer 拖放、剪切/复制和粘贴文件

为了在资源管理器中开始拖动操作,我们从Listview中实现ItemDrag事件,当您拖动一个项目超过几个像素后会调用该事件。 我们只需调用DoDragDrop传递要拖动的文件并包装在DataObject中。 您实际上不需要了解DataObject - 它实现了通信中使用的IDataObject接口。

在 Drag enter 事件中添加此内容(当您拖动文件时,这将更改 cursor 类型)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM