Question

I have a TextBox in my form and I added this event on it:

private void txtValue_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show(e.KeyData.ToString());
        }

But it always prints the upper case of the letter even though I entered a lower case letter in the textBox. Please see image below:

my form

How should I get the right display? Thanks...

Was it helpful?

Solution

KeyDown and KeyUp use KeyEventArgs, which exposes the Keys enum via the KeyData property. The enum does not have representation for lower-case alphabetic values.

http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx

The KeyPress event allows you to get the actual character of the key pressed via KeyPressEventArgs.KeyChar.

private void txtValue_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show(e.KeyChar.ToString());
} 

OTHER TIPS

If you handle the KeyPress event instead, you can examine the KeyChar property of KeyPressEventArgs to get the correct case.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top