У меня следующая ситуация:
В моем приложении Windows Forms у меня есть два элемента управления ListView, и мне нужно перетащить элемент из ListView1 в ListView2.
Когда я выбираю элемент в ListView1 и перетащите элемент ListView2, я хочу выделить элемент, на который наведем курсор мыши в ListView2, чтобы указать, какой элемент ListView2 получает перетаскивание.
Ниже мой фактический код на ListView2.DragOver
Событие :
private void listView2_DragOver(object sender, DragEventArgs e)
{
Point pto = new Point(e.X, e.Y);
e.Effect = DragDropEffects.Move;
Point localpoint = listView2.PointToClient(pto);
ListViewItem item = listView2.GetItemAt(localpoint.X, localpoint.Y);
listView2.Items[item.Index].Focused = true;
listView2.Items[item.Index].Selected = true;
}
С этим кодом есть две проблемы:
a) Метод GetItemAt()
не возвращает допустимый элемент (возвращает ноль). Я уже пытался изменить источник координат на Cursor.Position
, но это тоже не работает. Как я мог поймать предмет по расположению мыши в этом событии?
b) Даже если я изменил индекс предмета в listView2.Items[item.Index]
, ничего не выделяется и не выделяется в listview2
.
Что мне следует сделать использовать, чтобы выделить или выбрать элемент при перетаскивании его?
Если бы вы могли мне помочь, я был бы очень признателен.