Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# keypress doesn't capture 'delete' key

Tags:

c#

winforms

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);             }         }     } 
like image 700
BuZz Avatar asked Nov 18 '11 19:11

BuZz


People also ask

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

What is C full form?

Full form of C is “COMPILE”.

What is C language basics?

What is C? C is a general-purpose programming language created by Dennis Ritchie at the Bell Laboratories in 1972. It is a very popular language, despite being old. C is strongly associated with UNIX, as it was developed to write the UNIX operating system.

Is C language easy?

C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.


2 Answers

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.

like image 155
Bradley Avatar answered Oct 03 '22 22:10

Bradley


You'll want to use the KeyDown event for this.

like image 34
JonH Avatar answered Oct 03 '22 22:10

JonH