2016-06-15 1 views
0

Disons que j'ai un ListView sur un formulaire et il est rempli d'enregistrements. Comment puis-je faire ceci: quand je clique (un clic) sur une ligne, quelque chose doit arriver - par exemple MessageBox.Show ("row selected");C# - ListView: Comment gérer l'événement de clic de souris sur un listViewItem?

Comment faire pour que cela se produise? Ai-je besoin d'un clic de souris? Et comment puis-je faire ça?

+1

Quel contrôle ListView? WPF? Windows Forms? –

Répondre

-1
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var selectedItemText = (listBox1.SelectedItem ?? "(none)").ToString(); 
    MessageBox.Show("Selected: " + selectedItemText); 
} 

private void listBox1_MouseClick(object sender, MouseEventArgs e) 
{ 
    for (int i = 0; i < listBox1.Items.Count; i++) 
    { 
     var rectangle = listBox1.GetItemRectangle(i); 
     if (rectangle.Contains(e.Location)) 
     { 
      MessageBox.Show("Item " + i); 
      return; 
     } 
    } 

    MessageBox.Show("None"); 
} 
+0

Mais j'ai besoin chaque fois que je clique sur un objet, cela arrive. – Mihai

+0

En fait, "SelectedIndexChanged" est toujours appelé par un clic de souris. Si vous insistez sur "MouseClick", vous pouvez utiliser "GetItemRectangle". – Tommy