MyListView fixes

This commit is contained in:
Jaex 2014-04-13 20:15:33 +03:00
parent 479369dd21
commit 623c98a6bd

View file

@ -130,7 +130,7 @@ protected override void OnItemDrag(ItemDragEventArgs e)
if (AllowDrop && e.Button == MouseButtons.Left) 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); 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)); if (lvi != null && lvi.ListView == this)
dragOverItem = GetItemAt(cp.X, cp.Y);
lineIndex = dragOverItem != null ? dragOverItem.Index : Items.Count;
if (lineIndex != lastLineIndex)
{ {
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) 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; ListViewItem lvi = drgevent.Data.GetData(typeof(ListViewItem)) as ListViewItem;
if (lvi != null) if (lvi != null && lvi.ListView == this)
{ {
ListViewItem insertItem = (ListViewItem)lvi.Clone(); ListViewItem insertItem = (ListViewItem)lvi.Clone();
Items.Insert(dragOverItem != null ? dragOverItem.Index : Items.Count, insertItem); Items.Insert(dragOverItem != null ? dragOverItem.Index : Items.Count, insertItem);