2013-07-29 30 views

cevap

11

Bunu konuma göre sütun belirlemek gerekir:

private void listView_Click(object sender, EventArgs e) 
{ 
    Point mousePos = listView.PointToClient(Control.MousePosition); 
    ListViewHitTestInfo hitTest = listView.HitTest(mousePos); 
    int columnIndex = hitTest.Item.SubItems.IndexOf(hitTest.SubItem); 
} 
+0

Bu bir tıklama olayı üzerinde işe yaramaz .. ama çift tıklama olayı üzerinde çalıştım (.NET 4.5 :) – user1265146

+0

Ayrıca o olacak MouseDown etkinliğinde ork .. – TaW

11

Bu benim için iyi çalışıyor şu şekildedir:

private void listView_MouseDown(object sender, MouseEventArgs e) 
    { 
     var info = listView.HitTest(e.X, e.Y); 
     var row = info.Item.Index; 
     var col = info.Item.SubItems.IndexOf(info.SubItem); 
     var value = info.Item.SubItems[col].Text; 
     MessageBox.Show(string.Format("R{0}:C{1} val '{2}'", row, col, value)); 
    } 
1

Sen ListView.MouseClick olay kullanabilirsiniz:

private void listView_MouseClick(object sender, MouseEventArgs e) 
{ 
    // Hittestinfo of the clicked ListView location 
    ListViewHitTestInfo listViewHitTestInfo = listView.HitTest(e.X, e.Y); 

    // Index of the clicked ListView column 
    int columnIndex = listViewHitTestInfo.Item.SubItems.IndexOf(listViewHitTestInfo.SubItem); 

    ... 
} 
İlgili konular