C# keypress doesn't capture 'delete' key

c#, winforms

Solution

The reason for this is that the KeyPress event sends a character to the control based upon the character-key you press. However, as you'd expect, the delete key does not represent a character and is thus a non-character key.

Therefore using the KeyPress event will do nothing as you have noticed. You should use the KeyDown or KeyUp Events, either of which will work absolutely fine. The nuance being whether you want your event to fire upon pressing, or letting go of a key.

Problem

I have added a keyPress event on a `ListView`. With a breakpoint on my event, I can see that most of the keys trigger the event. However, a few among which, the one I'm interested in (delete), just won't trigger my event. Is that weird ? And no, there's no broken keys on my keyboard :D ``` private void listView1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Delete) { ListView target = (ListView)sender; if (target.SelectedIndices != null && target.SelectedIndices.Count > 0) { string ric = target.SelectedItems[0].SubItems[0].Text; //target.Items.RemoveAt(target.SelectedIndices[0]); ListModels.getInstance().getModel("Vols").removeRic(ric); } } } ```

Original source

Related problems