2010-03-08 61 views
1

如何確定是否按下Key是字母鍵 關於文化特定按鍵C#KeyDown字母數字文化依賴!

例如爲:

'[' = 'ú' = 'ü' ...是在不同的語言鍵盤相同的密鑰,但具有不同的價值。 (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; 
      } 
+0

這樣做有什麼目的?也許有一種不同的方式來實現你想要做的事情。 – mike

回答

-1

char.IsLetter方法對你有幫助嗎?

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

與樣品,我們可以這樣寫:

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

e.Key是虛擬鍵碼,不是字符。雖然對於ASCII字符,它通常會是相同的值,但只要您在0-127範圍之外,就不是這樣 –