我到处都看到了这个并尝试了所有的解决方案,似乎没有得到我想要的东西。我希望能够将文件从资源管理器中删除到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时,我从资源管理器中获取了一条直线。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
DragEnter和DragDrop事件应该在ListView中处理,而不是在Form中处理。 关于拖放:我不记得文章名称,但我在codeproject中找到了一个很好的例子。