2012-04-08 3 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 –

+0

Можете ли вы установить клавиатуру, чтобы разрешить буквы? –

ответ

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 для идентификации копирования. –

Смежные вопросы