如何获取列表视图中没有列表项的已单击列的列索引
本文关键字:列表 索引 单击 何获取 获取 视图 | 更新日期: 2023-09-27 18:07:21
我已经这样做了,它工作得很好:
private int getcolumn()
{
Point mousePosition = base.PointToClient(Control.MousePosition);
ListViewHitTestInfo hit = base.HitTest(mousePosition);
return hit.Item.SubItems.IndexOf(hit.SubItem);
}
但是,如果在列表视图中至少有一个项目,则工作。我的列表是空的,所以我怎么能得到列索引?
一个空列表将返回一个空子项。
然而,尽管下面的示例不是很优雅,但您可以看到如何使用Y位置来确定Y与哪个列相关联:
private int getcolumn()
{
Point mousePosition = base.PointToClient(Control.MousePosition);
switch(mousePosition.Y)
{
case mousePosition.Y >= 0 && mousePosition.Y <= base.Columns(0).Width:
Return base.Columns(0).index
break;
case mousePosition.Y >= base.Columns(0).Width && mousePosition.Y <= base.Columns(1).Width:
Return base.Columns(1).index
break;
case mousePosition.Y >= base.Columns(0).Width + base.Columns(1).Width && mousePosition.Y <= base.Columns(2).Width:
Return base.Columns(2).index
break;
default:
Return -1
}
}
private int getcolumn()
{
Point mousePosition = base.PointToClient(Control.MousePosition);
ListViewHitTestInfo hit = base.HitTest(mousePosition);
if Item.SubItems.Any()
{
return hit.Item.SubItems.IndexOf(hit.SubItem);
}
else
{
return -1;
}
}