Ce serait facile si les zones de texte masquées acceptaient l'expression régulière, mais malheureusement, ce n'est pas le cas.
One (mais pas très joli) comme vous pourriez le faire est d'utiliser la lettre en option ?
masque et mettre dans le même montant que la longueur maximale vous permet dans la zone de texte, à savoir
maskedTextBox1.Mask = "????????????????????????????????.......";
Sinon, vous pouvez utiliser votre propre validation au lieu d'un masque et d'utiliser une expression régulière comme si
void textbox1_Validating(object sender, CancelEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox1.Text, @"^[a-zA-Z]+$"))
{
MessageBox.Show("Please enter letters only");
}
}
Ou encore une autre façon serait d'ignorer toutes les touches autres que celles des lettres en manipulant l'événement KeyPress, qui mon l'opinion serait la meilleure voie à suivre.
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @"^[a-zA-Z]+$"))
e.Handled = true;
}
Oui, je trouve cela, mais je voulais éviter d'écrire cela. : P Merci! –
Je vais juste créer une méthode d'aide. Merci! –
'if (! System.Text.RegularExpressions.Regex.IsMatch (textbox1.Text, @" [a-zA-Z] + $ "))' ne fonctionnera pas dans l'événement KeyPress. utilisez 'e.KeyChar.ToString()' au lieu de 'textbox1.Text' – Shell