我有一个Listview,我想在用户双击最后一列(index = 7)时做出反应。
我正在使用以下代码:
Point mousePos = this.lvInfo.PointToClient(Control.MousePosition);
ListViewHitTestInfo hitTest = this.lvInfo.HitTest(mousePos);
int columnIndex = hitTest.Item.SubItems.IndexOf(hitTest.SubItem);
if (columnIndex == 7)
MessageBox.Show("Test!");
我的columnIndex值得错了,无法找出原因。 即使我总是点击同一列,这些值似乎也会改变。
答案 0 :(得分:0)
我尝试了这种不同的方法,它运作得很好。
private void lvInfo_MouseUp(object sender, MouseEventArgs e)
{
this.X = e.X;
this.Y = e.Y;
}
private void lvInfo_DoubleClick(object sender, EventArgs e)
{
// if double clicked on gas column open dialog for entering new gas value
Point mousePos = new Point(this.X,this.Y);
ListViewHitTestInfo info = lvInfo.HitTest(mousePos);
int colNr = info.Item.SubItems.IndexOf(info.SubItem);
if (colNr == 7)
{
MessageBox.Show("Test");
}
}