Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 private void MyListView_DragLeave(object sender, EventArgs e)
 {
     this.InsertionMark.Index = -1;
     OnItemDragSortEnd?.Invoke(sender, null);
 }