2012-04-08 107 views
0

有誰知道如何檢查文本框中是否有非字母字符?Windows Phone TextBox驗證

如果在文本框中的任何符號或數字等 - 我想做一個:

MessageBox.Show("Please enter only letters");

任何幫助,高度讚賞。

+0

看看RegularExpressions:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.95).aspx – 2012-04-08 16:58:31

+0

你可以設置鍵盤只允許信嗎? – 2012-04-08 17:00:08

回答

1

在文本框的KeyPress事件中,可以檢查字符是否是字母,如果不是,則取消按鍵。這是未經測試的,但應該工作。

private void YourTextbox_KeyPress(Object sender, KeyPressEventArgs e) 
{ 
    if(!char.IsLetter(e.KeyChar)) 
    { 
     e.Handled = true; 
     MessageBox.Show("Please enter only letters"); 
    } 
} 

基本上你正在和測試,如果字符是字母,如果是,則允許按鍵要經過操作系統,否則取消按鍵(由e.Handled屬性設置爲true)。

現在,用戶可以通過粘貼包含非字母字符的文本來繞過這一點,所以它比安全性更適合用戶更好的體驗。要在用戶點擊提交按鈕後執行驗證,您可以使用遍歷字符串來確定是否有任何非字母字符。因此,在您提交的事件,你可以有這樣的事情:

for(int i = 0; i < YourTextbox.Text.Length; i++) 
{ 
    if(!char.IsLetter(YourTextbox.Text[i]) 
    { 
     MessageBox.Show("Please enter only letters"); 
     break; 
    } 
} 

Char.IsLetter method on MSDN

+0

您也可以處理TextChanged以識別複製粘貼。 – 2012-04-09 04:21:25