From 623c98a6bd268a1cdb5831ccf2ad3dc8a850319c Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 13 Apr 2014 20:15:33 +0300 Subject: [PATCH] MyListView fixes --- HelpersLib/UserControls/MyListView.cs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/HelpersLib/UserControls/MyListView.cs b/HelpersLib/UserControls/MyListView.cs index d9ed4a489..9b51326ec 100644 --- a/HelpersLib/UserControls/MyListView.cs +++ b/HelpersLib/UserControls/MyListView.cs @@ -130,7 +130,7 @@ protected override void OnItemDrag(ItemDragEventArgs e) if (AllowDrop && e.Button == MouseButtons.Left) { - DoDragDrop((ListViewItem)e.Item, DragDropEffects.Move); + DoDragDrop(e.Item, DragDropEffects.Move); } } @@ -138,18 +138,23 @@ protected override void OnDragOver(DragEventArgs drgevent) { base.OnDragOver(drgevent); - drgevent.Effect = DragDropEffects.Move; + ListViewItem lvi = drgevent.Data.GetData(typeof(ListViewItem)) as ListViewItem; - Point cp = PointToClient(new Point(drgevent.X, drgevent.Y)); - dragOverItem = GetItemAt(cp.X, cp.Y); - lineIndex = dragOverItem != null ? dragOverItem.Index : Items.Count; - - if (lineIndex != lastLineIndex) + if (lvi != null && lvi.ListView == this) { - Invalidate(); - } + drgevent.Effect = DragDropEffects.Move; - lastLineIndex = lineIndex; + Point cp = PointToClient(new Point(drgevent.X, drgevent.Y)); + dragOverItem = GetItemAt(cp.X, cp.Y); + lineIndex = dragOverItem != null ? dragOverItem.Index : Items.Count; + + if (lineIndex != lastLineIndex) + { + Invalidate(); + } + + lastLineIndex = lineIndex; + } } protected override void OnDragDrop(DragEventArgs drgevent) @@ -158,7 +163,7 @@ protected override void OnDragDrop(DragEventArgs drgevent) ListViewItem lvi = drgevent.Data.GetData(typeof(ListViewItem)) as ListViewItem; - if (lvi != null) + if (lvi != null && lvi.ListView == this) { ListViewItem insertItem = (ListViewItem)lvi.Clone(); Items.Insert(dragOverItem != null ? dragOverItem.Index : Items.Count, insertItem);