Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - ListView : How to handle the mouse click event on a listViewItem?

Let's say I have a ListView on a form and it is populated with records. How can I do this : when I click (single click) on a row , something has to happen - for example MessageBox.Show("row selected");

How to make this happen? Do I need a mouse click event ? And how can I do this?

like image 279
Mihai Avatar asked Jan 23 '26 18:01

Mihai


2 Answers

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");
}
like image 57
Tommy Avatar answered Jan 26 '26 10:01

Tommy


@Tommy answer is for ListBox, this one is for ListView :

    private void listView1_MouseClick(object sender, MouseEventArgs e)
    {
        for (int i = 0; i < listView1.Items.Count; i++)
        {
            var rectangle = listView1.GetItemRect(i);
            if (rectangle.Contains(e.Location))
            {
                //Write your code here
                return;
            }
        }
    }
like image 45
Barun Avatar answered Jan 26 '26 10:01

Barun



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!