【问题标题】:Drag and Drop in C#?在 C# 中拖放?
【发布时间】:2009-03-21 12:17:18
【问题描述】:

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

【问题讨论】:

  • 什么是“程序”? Windows 应用程序?

标签: c# drag-and-drop


【解决方案1】:

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

如果您使用 WPF,this tutorialthis SO thread 应该会有所帮助。

【讨论】:

    【解决方案2】:

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

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

    Drag and drop, cut/copy and paste files with Windows Explorer

    开始拖动操作到 Explorer,我们实现ItemDrag 来自Listview 的事件,它得到 在您拖动一个项目后调用 比几个像素。我们简单地调用 DoDragDrop 传递文件 拖着包裹在DataObject中。你 真的不需要了解 DataObject - 它实现了 IDataObject中使用的接口 交流。

    【讨论】:

      【解决方案3】:

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

       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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-27
        • 2011-02-14
        • 2014-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多