我有以下情况:
在我的 Windows 窗体应用程序中,我有两个 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()方法未返回有效项(返回 null)。我已经尝试将坐标源更改为Cursor.Position,但它也不起作用。在此事件中如何通过鼠标位置捕获该项目?
b)即使我更改了项目的索引listView2.Items[item.Index],也没有任何内容突出显示或选择listview2。
拖动项目时我应该使用什么来突出显示或选择项目?
如果您能帮助我,我将不胜感激。