C#KeyDown依赖于字母数字文化!

时间:2010-03-08 15:26:32

标签: c# keyboard culture

如何确定按下的Key是否是按字母顺序排列的键 关于文化特定密钥

e.g:

'[' = 'ú' = 'ü' ...是相同的密钥,但在不同的语言键盘上具有不同的值。

我试图比较序数键值:(int)e.Key> = 0x20E ..和< = .. 但它不能很好地工作,因为修饰键有时会有相同的序号。

有什么想法吗? 感谢

编辑:

嗯,这个怎么样?

System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]");
            if (!objAlphaNumericPattern.IsMatch(e.Key.ToString()))      
            {
                lp.IsDropDownOpen = true;
            }

1 个答案:

答案 0 :(得分:-1)

char.IsLetter方法对您的情况有帮助吗?

char.IsLetter('['); //Return false
char.IsLetter('ú'); //Return true

使用您的样本,我们可以写:

if (!char.IsLetterOrDigit((char)e.Key))
{
    lp.IsDropDownOpen = true;
}