C# KeyCode

Lightning bolt

KeyCode handles key presses. You have a TextBox control on your Windows Forms application and need to detect Enter. The TextBox allows your users to type letters into it, and you need to detect when a certain key is pressed.

Here:Our solution involves the KeyDown event in our C# Windows Form and the KeyCode property.

Example

Note

In the Visual Studio designer, click on your TextBox control in the form display. You will see the Properties Pane. Click on the lightning bolt icon. This icon stands for events: we use it to create events.

Then:In the event tab, scroll to KeyDown, and double click in the space to the right. New code like that highlighted below will appear.

Example that uses KeyDown event handler: C#

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Linq;

namespace WindowsProgramNamespace
{
    public partial class TextWindow : Form
    {
	public TextWindow()
	{
	    InitializeComponent();
	}

	private void textBox1_KeyDown(object sender, KeyEventArgs e)
	{

	}
    }
}

Example 2

Here is the code that detects when Enter is pressed. The trick is to examine the "KeyEventsArg e" and check KeyCode. Keys is an enumeration, and it stores special values for many different keys pressed. KeyCode must be compared to Keys.

KeyDown implementation: C#

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
	// Enter (return) was pressed.
	// ... Call a custom method when user presses this key.
	AcceptMethod();
    }
}

Keys

Enum

Here we see some values you can test against the KeyCode property. You can do this the same way as we tested Keys.Enter in the previous example. This is useful for developing data-driven user interfaces.

Keys.Shift:Indicates the shift key was pressed. You could use this to prevent a user from typing uppercase letters.

Keys.Tab:Could use this to prevent user from tabbing out of a TextBox that isn't valid.

Keys.OemPipe, Keys.Oem:Some of these are apparently original equipment manufacturer specific. They may vary on the keyboard being used.

Keys.NumPad:Useful for data entry applications. You could setup the program to detect whether the numeric pad is being used.

Summary

Here we saw how to use KeyCode in the KeyDown event to check against the Keys enumeration to detect the Enter key. You can check many other keys also by testing the e.KeyCode in the KeyDown event.

Note:If you need to detect Shift, Tab, or an Arrow key, the e.KeyCode property can be ideal.


C#: Windows