在listview控件中获取鼠标光标下的项目?

基本上我正在尝试实现一个function,如果用户按下一个键,我想找出鼠标光标下的项目。

所以我不使用鼠标事件,但键盘事件当然不会给我一个ListViewItem。

我只是不知道在什么空间我需要获得鼠标位置并将其转换为控件的空间。

有任何想法吗?

如果您知道您感兴趣的ListView控件,则以下方法可以解决这个问题:

private ListViewItem GetItemFromPoint(ListView listView, Point mousePosition) { // translate the mouse position from screen coordinates to // client coordinates within the given ListView Point localPoint = listView.PointToClient(mousePosition); return listView.GetItemAt(localPoint.X, localPoint.Y); } // call it like this: ListViewItem item = GetItemFromPoint(myListView, Cursor.Position); 

取决于鼠标位置的键盘动作听起来有点不正统。 键盘操作通常应该影响屏幕上突出显示/聚焦/选择的某个项目,可以通过以前的键盘操作或之前的鼠标单击该项目来选择。

只需要记住一些事情,否则你将会遇到“独特”(令人困惑的)用户互动。