Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取未';t列表视图项?_C#_Winforms_Listview - Fatal编程技术网

C# 如何获取未';t列表视图项?

C# 如何获取未';t列表视图项?,c#,winforms,listview,C#,Winforms,Listview,我已经这样做了,效果很好: private int getcolumn() { Point mousePosition = base.PointToClient(Control.MousePosition); ListViewHitTestInfo hit = base.HitTest(mousePosition); return hit.Item.SubItems.IndexOf(hit.SubItem); } 但是,如果listview中至少有一个项,则可以

我已经这样做了,效果很好:

private int getcolumn()
{
    Point mousePosition = base.PointToClient(Control.MousePosition);
    ListViewHitTestInfo hit = base.HitTest(mousePosition);   
    return hit.Item.SubItems.IndexOf(hit.SubItem); 
}
但是,如果listview中至少有一个项,则可以使用。 我的列表是空的,所以如何获取列索引?
提前感谢。

空列表将返回空子项

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; 
    }
}
但是,虽然下面的示例不是很优雅,但您可以看到如何使用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);
开关(mousePosition.Y)
{

case mousePosition.Y>=0&&mousePosition.Y=base.Columns(0)。Width&&mousePosition.Y=base.Columns(0)。Width+base.Columns(1)。Width&&mousePosition.Y您可以进行条件检查,查看项目是否为空。或者当没有项目命中项目值null时,案例中的子项目似乎不起作用