0
我已經看到了這個無處不在,並嘗試了所有的解決方案,並且看起來並不像我想要的那樣。我希望能夠將文件從資源管理器拖放到ListView上,然後通過拖放操作對它們進行排序。我有這個簡單的代碼可以從資源管理器拖放。不能從資源管理器拖到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());
}
這是奇怪的,因爲我改變對消息查看一個RichTextBox我有我的形式,它工作得很好。是否有額外的步驟,我必須做的?當我嘗試拖放到ListView上時,我從資源管理器中通過一條線獲取該圓。任何幫助,將不勝感激。謝謝。
他們在列表視圖中處理,只是他們的名字有點時髦。是否需要初始化InitializeComponent()以外的地方 – 2012-03-06 16:00:47
將「FileGroupDescriptor」更改爲常量DataFormats.FileDrop,右邊的字符串應該是FileDrop,並且在DragDrop事件中您可以獲得正確的數據(可以迭代的字符串[] )使用e.Data.GetData()方法而不是ToString()。 – 2012-03-06 16:15:53