/// <summary> /// drag complete /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MyListView_DragDrop(object sender, DragEventArgs e) { int targetIndex = this.InsertionMark.Index; if (targetIndex == -1) { return; } SelectedListViewItemCollection draggedItems = (SelectedListViewItemCollection)e.Data.GetData(typeof(SelectedListViewItemCollection)); if (draggedItems == null || draggedItems.Count == 0 || draggedItems[0].ListView != this) { this.InsertionMark.Index = -1; return; } foreach (ListViewItem draggedItem in draggedItems) { this.Items.Remove(draggedItem); this.Items.Insert(targetIndex, draggedItem); if (AppearAboveItem(targetIndex)) { targetIndex++; } } OnItemDragSortEnd?.Invoke(sender, e); }
private void MyListView_DragLeave(object sender, EventArgs e) { this.InsertionMark.Index = -1; OnItemDragSortEnd?.Invoke(sender, null); }