private void listViewFolder_ItemDrag(object sender, ItemDragEventArgs e)
{
if (e.Button != MouseButtons.Left) return;
if (listViewFolder.SelectedItems.Count == 0) return;
string[] files = new string[listViewFolder.SelectedItems.Count];
int i = 0;
foreach (ListViewItem item in listViewFolder.SelectedItems)
files[i++] = item.Tag.ToString(); // Tag 存放完整路徑
DataObject data = new DataObject(DataFormats.FileDrop, files);
data.SetData(DataFormats.StringFormat, files[0]); // 兼容文字拖放
DoDragDrop(data, DragDropEffects.Copy);
}
Tag(檔案完整路徑)轉為字串陣列。DataObject 並指定格式為 FileDrop,支援拖放至總管、桌面等。DoDragDrop 進入拖放迴圈,效果設為 Copy。至此拖出功能完整實現。