Comment forcer la zone de texte à prendre uniquement des chiffres dans WPF?
Je veux de l'utilisateur de saisir des valeurs numériques dans TextBox
.
J'ai eu ce code:
private void txtType1_KeyPress(object sender, KeyPressEventArgs e)
{
int isNumber = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out isNumber);
}
Mais je ne reçois pas textbox_KeyPress
événement et e.KeyChar
lors de l'utilisation de WPF.
Quoi la solution dans WPF?
Edit:
J'ai fait une Solution!
private void txtName_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
CheckIsNumeric(e);
}
private void CheckIsNumeric(TextCompositionEventArgs e)
{
int result;
if(!(int.TryParse(e.Text, out result) || e.Text == "."))
{
e.Handled = true;
}
}
- Got C'Était Vraiment de l'Aide totale.. Cela a fonctionné....
- voir ici Vous pouvez trouver ici un bon aperçu des réponses pour elle.
Vous devez vous connecter pour publier un commentaire.
PreviewTextInput()
ne serez pas attraper la touche 'espace' de presse. L'ajout deif (e.Key == Key.Space) e.Handled = true;
dans lePreviewKeyDown()
permettrait de résoudre ce problème.Vous pouvez utiliser une règle de validation...
http://www.codeproject.com/KB/WPF/wpfvalidation.aspx
Ou faire votre propre Maskable zone de texte
http://rubenhak.com/?p=8
Vous pouvez lier votre zone de texte avec une dépendance de la propriété et à l'intérieur de la propriété de dépendance de la méthode de validation, vous pouvez vérifier si int.tryparse retourne true alors tout va bien sinon, vous pouvez aller pour un défaut ou vous pouvez réinitialiser la valeur.
Ou vous pouvez utiliser WPF ValidationRules pour savoir quand la valeur est modifiée. Une fois changé, vous pouvez appliquer la logique pour inout validaiton.
Ou vous pouvez utiliser IDataError Info pour la validation.
Dans WPF le mot de valeurs sont différentes de la normale winforms e.keychar valeurs,
Dans le PreviewKeyDown cas de la zone de texte, ajoutez ce code:
Cela permettra à l'Utilisateur à entrer des Chiffres dans le Numpad0 - Pavnum9 section et la D0 - D9 et aussi la clé.De retour
Espère que cette Aide, bonne santé!
bits version améliorée de Hasib Uz Zaman
il s'agira de vérifier pour la duplication .(marque décimale) et ne permettra pas seulement .(marque décimale)
En xaml
Je crois que ce que vous cherchez est la
PreviewTextInput
événement.