简体   繁体   中英

c# event handler on a listview

I would like to create an event handler in a listview. I mean I would like to call a function every time I have a new element in my listview. Can someone help me how to do it? I don't need a click event handler. The event handler I would like it to be automatically generated by the code (the ithem from the listview to be selected and then a new method to be called). The element in the listview looks like: element1 name surname (this is on the first row). THx

How to create the handler for this function ?

private void listview1_SelectedIndexChanged(object sender, EventArgs e)
{ 
   for (int x = 0; x < listview1.Items.Count; x++)
   { 
      if (listview1.Items[x].Selected) 
         MessageBox.Show(listview1.Items[x].SubItems[1].Text);
   }
}

As Henk Holterman pointed out, the method you posted in your question, listview1_SelectedIndexChanged , IS an event handler. If it's not doing what it's supposed to, that could be because it's not attached to the corresponding event of listview1 .

If the method already exists in the .cs file containing the code for your form, you need to attach it to the SelectedIndexChanged event of your ListView. To do this, select the control, then click on the lightning icon in the properties panel. Find the event ( SelectedIndexChanged ) in the list, then click on the arrow on the right and select listview1_SelectedIndexChanged .

Update:

Since you're adding the ListView programatically, you can assign the handler as follows

listView1.SelectedIndexChanged += listview1_SelectedIndexChanged;

As for your crash, I can't really think of anything off the top of my head. Maybe you could post the text of the exception?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM