无法从资源管理器拖动到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中得到一个带直线的圆圈。如有任何帮助,我们将不胜感激。谢谢
DragEnter和DragDrop事件应该在ListView中处理,而不是在Form中处理。关于拖放:我不记得文章的名字,但我在代码项目中找到了一个很好的例子。