0

我想处理一个字母字符和下划线。如果还按下了 SHIFT,我如何知道输入了什么字符。目前,移位的字符由 ELSE 子句处理。

private void txtSearch_KeyUp(object sender, KeyEventArgs e)
{
    if (((int)e.KeyData >= 65 && (int)e.KeyData <= 122) ||
             (e.KeyData.ToString() == "_"))
    {
        System.Diagnostics.Debug.WriteLine(e.KeyData);
        //char thisChar = char excluding SHIFT, Control
        System.Diagnostics.Debug.WriteLine("Process " + thisChar);
    }
    else
    {
        System.Diagnostics.Debug.WriteLine("Throw away a " + e.KeyData);
    }
}
4

2 回答 2

0

天,

我采取了一种稍微不同的方法:

    private void txtSearch_KeyUp(object Sender, KeyEventArgs E)
    {
        int iKeyData = (int)(E.KeyData);

        if (((E.KeyData.HasFlag(Keys.OemMinus) == true) && (E.Shift == true)) || ((iKeyData >= 65) && (iKeyData <= 122)))
        {
            System.Diagnostics.Debug.WriteLine(E.KeyData);
        }
        else
        {
            System.Diagnostics.Debug.WriteLine("Throw away a " + E.KeyData);
        }
    }

我不确定这将如何与不同的键盘布局一起使用 - 可能也想研究一下。

干杯!

于 2012-08-21T05:41:13.590 回答
0
if (e.Shift && (((int)e.KeyData >= 65 && (int)e.KeyData <= 122) || (e.KeyData.ToString() == "_")))
{
    //Code here
}
于 2012-08-21T03:51:09.633 回答