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. Our solution involves the KeyDown event in our C# Windows Form. We use the KeyDown event for our code.

Using KeyDown event

Open designer and click on TextBox. In the Visual Studio 2008 designer, click on your TextBox control in the form display. You will see the Properties Pane. Next, click on the lightning bolt icon. This icon stands for events. In the event tab, scroll to KeyDown, and double click in the space to the right. New code like that highlighted below will appear.

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)
        {

        }
    }
}

Using the KeyCode property

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.

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 enumeration values

Here we see some values you can test the KeyCode property against. You can do this the same way as we tested Keys.Enter in the previous example. This is really 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.
Make sure to test these rigorously.

Keys.NumPad*
This could be 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. If you need to detect Shift, Tab, or an Arrow key, this can be ideal.

 

arrow
arrow
    全站熱搜

    createps 發表在 痞客邦 留言(0) 人氣()