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

时间:2012-03-06 15:53:04

标签: c# listview drag-and-drop

我到处都看到了这个并尝试了所有的解决方案,似乎没有得到我想要的东西。我希望能够将文件从资源管理器中删除到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时,我从资源管理器中获取了一条直线。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

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