I have done this and it works fine :
private int getcolumn()
{
Point mousePosition = base.PointToClient(Control.MousePosition);
ListViewHitTestInfo hit = base.HitTest(mousePosition);
return hit.Item.SubItems.IndexOf(hit.SubItem);
}
But works if in the listview there is at least one item. My list is empty, so how can i get column index? Thanks in advance.
An empty list is going to return a null subitem.
However, while the example below is not very elegant, you can see how to use the Y position to determine which column the Y is associated with:
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
}
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments