2014-01-20 40 views
0

我正在使用C#,Visual Studio 2010,Windows窗體應用程序和使用文本框。限制按鍵

對於此文本框,我不希望用戶能夠按數字,退格和字母(大寫和小寫)之外的任何鍵。任何其他字符(例如@#$%^)都會導致嘟嘟聲並拒絕按鍵。

什麼代碼來檢查這些鍵的範圍?

謝謝!

+0

你知道如何處理關鍵事件?你知道如何比較字符?你試過什麼了?你有沒有做過任何研究? – marsze

回答

1
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (!(Char.IsLetter(e.KeyChar) || Char.IsDigit(e.KeyChar) || Char.IsControl (e.KeyChar))){ 
     e.Handled = true; 
     Console.Beep(); 
    } 
} 

,像MusiGenesis在這個問題上說: Allow only alphanumeric in textbox

處理在KeyDown或按鍵事件是不夠的。用戶仍然可以將複製並粘貼到文本框中的無效文本

一個更好的方法是處理TextChanged事件,並去掉那裏的任何有問題的字符。這有點複雜,因爲您必須跟蹤插入位置並在更改框的Text屬性後將其重新設置到適當的位置。

根據您的應用程序的需要,我只是讓用戶輸入他們想要的任何內容,然後在用戶嘗試提交時標記文本框(將文本轉爲紅色或其他內容)。