C # KeyDown буквенно-цифровая культура зависит! - PullRequest
1 голос
/ 08 марта 2010

Как определить, является ли нажатой Key алфавитная клавиша в отношении специфичных для культуры ключей :

например:.

'[' = 'ú' = 'ü' ... это одна и та же клавиша, но с разным значением на разных языках.

Я пытался сравнить порядковый номер ключа: (int) e.Key> = 0x20E ..and <= .. но это не работает, так как клавиши-модификаторы имеют иногда одинаковые порядковые коды. </p>

Есть идеи? Спасибо

РЕДАКТИРОВАНИЕ:

Хм, а как насчет этого?

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 голосов
/ 08 марта 2010

Метод char.IsLetter полезен в вашем случае?

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

С вашим образцом мы можем написать:

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