无法从资源管理器拖动到ListView上

本文关键字:ListView 拖动 资源管理器 | 更新日期: 2023-09-27 18:27:00

我到处都看到了这种情况,并尝试了所有的解决方案,但似乎没有得到我想要的。我希望能够将文件从资源管理器拖放到ListView,然后能够通过拖放对它们进行排序。我有一个简单的代码,可以从资源管理器中进行拖放。

        this.messageView.AllowDrop = true;
        this.messageView.Location = new System.Drawing.Point(12, 52);
        this.messageView.Name = "messageGrid";
        this.messageView.Size = new System.Drawing.Size(121, 97);
        this.messageView.TabIndex = 3;
        this.messageView.UseCompatibleStateImageBehavior = false;
        this.messageView.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
        this.messageView.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);

和处理

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
        if (e.Data.GetDataPresent("FileGroupDescriptor"))
            {
            e.Effect = DragDropEffects.All;
            }
        }
    private void Form1_DragDrop(object sender, DragEventArgs e)
        {
        messageView.Items.Add(e.Data.ToString());
        }

这很奇怪,因为我将表单上的messageView更改为RichTextBox,所以效果很好。我还需要采取其他步骤吗?当我试图放到ListView上时,我会从Explorer中得到一个带直线的圆圈。如有任何帮助,我们将不胜感激。谢谢

无法从资源管理器拖动到ListView上

DragEnter和DragDrop事件应该在ListView中处理,而不是在Form中处理。关于拖放:我不记得文章的名字,但我在代码项目中找到了一个很好的例子。