Always in upper case… (C# winforms)

2019-01-15 19:53发布

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...

标签: c# key-events
2条回答
欢心
2楼-- · 2019-01-15 20:22

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

查看更多
霸刀☆藐视天下
3楼-- · 2019-01-15 20:23

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());
} 
查看更多
登录 后发表回答