2016-06-15 16 views
0

Nehmen wir an, ich habe ein ListView in einem Formular und es wird mit Datensätzen gefüllt. Wie kann ich das tun: wenn ich (Einzelklick) auf eine Zeile klicke, muss etwas passieren - zum Beispiel MessageBox.Show ("row selected");C# - ListView: Wie behandelt man das Mausklick-Ereignis auf einem listViewItem?

Wie kann man das erreichen? Brauche ich ein Mausklick-Ereignis? Und wie kann ich das tun?

+1

Welches ListView-Steuerelement? WPF? Windows Forms? –

Antwort

-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

Aber ich brauche jedes Mal, wenn ich auf ein Element klicke, geschieht dies. – Mihai

+0

Tatsächlich wird "SelectedIndexChanged" immer per Mausklick aufgerufen. Wenn Sie auf "MouseClick" bestehen, können Sie "GetItemRectangle" verwenden. – Tommy