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)
{
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);