确定ListView中单击的列

Sat*_*ish 10 c# listview winforms

我需要在C#中的ListView中单击列

我有一些示例代码来自如何确定Listview中的单击列索引,但我不确定如何实现它.

Ada*_*rce 18

Jeez,每个人都懒得发布代码.该过程分为三个步骤:

  1. 使用鼠标位置Control.MousePosition并转换为客户端坐标.
  2. 调用该HitTest函数以查找鼠标指向的内容.这会返回一个包含大量信息的对象,除了实际的列号,所以......
  3. 使用子搜索子数组IndexOf来查找列号.

这是代码:

private void listViewMasterVolt_DoubleClick(object sender, EventArgs e)
{
    Point mousePosition = myListView.PointToClient(Control.MousePosition);
    ListViewHitTestInfo hit = myListView.HitTest(mousePosition);
    int columnindex = hit.Item.SubItems.IndexOf(hit.SubItem);
}
Run Code Online (Sandbox Code Playgroud)


Tim*_*son 4

控件ListView有一个HitTest方法。您为它提供鼠标单击事件的 x 和 y 坐标,它会为您提供一个对象,告诉您该点的行(列表视图项)和列(列表视图子项)。