步驟5 為ListVIEw 添加 ItemDrag 事件
這個事件在ListVIEw 的Item被拖動時響應,我們利用這個事件將當前選中的item對應的文件名復制到拖動數據中,
並調用窗體的DoDragDrop方法告知窗體現在開始做拖放操作。
private void listVIEwFolder_ItemDrag(object sender, ItemDragEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (listVIEwFolder.SelectedItems.Count <= 0)
{
return;
}
//put selected files into a string array
string[] files = new String[listVIEwFolder.SelectedItems.Count];
int i = 0;
foreach (ListViewItem item in listVIEwFolder.SelectedItems)
{
files[i++] = item.Tag.ToString();
}
//create a dataobject holding this array as a filedrop
DataObject data = new DataObject(DataFormats.FileDrop, files);
//also add the selection as textdata
data.SetData(DataFormats.StringFormat, files[0]);
//Do DragDrop
DoDragDrop(data, DragDropEffects.Copy);
}
}
}
完成了步驟5,拖出功能也實現了。