Это было бы легко, если бы замаскированные текстовые поля принимали регулярное выражение, но, к сожалению, это не так.
Один (хотя и не очень красивый) способ сделать это - использовать дополнительную маску ?
для буквы и указать ту же величину, что и максимальная длина, допустимая в текстовом поле, т.е.
maskedTextBox1.Mask = "????????????????????????????????.......";
В качестве альтернативы вы можете использовать свою собственную проверку вместо маски и использовать регулярное выражение, например
void textbox1_Validating(object sender, CancelEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox1.Text, @"^[a-zA-Z]+$"))
{
MessageBox.Show("Please enter letters only");
}
}
Или еще одним способом было бы игнорировать любые нажатия клавиш, отличные от нажатий букв, обрабатывая событие KeyPress , что, на мой взгляд, было бы наилучшим способом.
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @"^[a-zA-Z]+$"))
e.Handled = true;
}