c# 拖放数据对象

本文关键字:对象 数据 拖放 | 更新日期: 2023-09-27 17:56:59

>我使用 C# 2.0 并且我创建了一个资源管理器树,我可以将信息从中拖到 Windows 窗体中。 现在,当我从 IM 使用的树视图中拖动时,它会执行DoDragDrop(selectedpath, DragDropEffects.Copy);

当我在主窗体中捕获事件时,它被列为字符串。我能够完成这项工作,但我希望它以与从 Windows 资源管理器窗口拖动文件相同的方式执行

,如下所示
   Array name = (Array)e.Data.GetData(DataFormats.FileDrop);
        // Ensure that the list item index is contained in the data.
        if (e.Data.GetDataPresent(typeof(System.String)))
        {
            Object item = (object)e.Data.GetData(typeof(System.String));
            // Perform drag-and-drop, depending upon the effect.
            if (e.Effect == DragDropEffects.Copy ||
                e.Effect == DragDropEffects.Move)
            {
                //// Insert the item.
                //if (indexOfItemUnderMouseToDrop != ListBox.NoMatches)
                //    ListDragTarget.Items.Insert(indexOfItemUnderMouseToDrop, item);
                //else
                //    ListDragTarget.Items.Add(item);
            }
        }

我尝试做DoDragDrop(new DataObject(selectedfile),DragDropEffects.Copy),但这不起作用。

c# 拖放数据对象

DoDragDropDragDropEffects.Copy不会对您的驱动器执行操作,除非您告诉它们这样做。DragDropEffects.Copy所做的实际上是复制程序中的对象,而不是文件本身。

请参阅有关 DragDropEffects 的文档。

您需要管理 OnDragDrop 事件并使用复制函数,例如 File.Copy