Nombres uniquement dans TextBox en C#
Ce didacticiel présentera les méthodes pour créer une zone de texte qui n’accepte que les nombres en C#.
Numbers Only TextBox avec la vue NumberUpDown
en C#
La vue NumberUpDown
est utilisée pour obtenir une entrée numérique de l’utilisateur en C#. Pour ajouter une vue NumberUpDown
dans notre application Windows Form, il suffit de sélectionner NumberUpDown
dans la boîte à outils et de la faire glisser vers notre formulaire. La vue NumberUpDown
ne prend aucune valeur non numérique de l’utilisateur. Il nous permet également de déplacer une valeur vers le haut ou vers le bas avec les touches de curseur. L’exemple de code suivant nous montre comment créer une zone de texte qui n’accepte que les valeurs numériques de l’utilisateur avec la vue NumberUpDown
en C#.
using System;
using System.Windows.Forms;
namespace textbox_numbers_only {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void numericUpDown1_KeyPress(object senderObject, KeyPressEventArgs KeyPressEvent) {
if (!char.IsControl(KeyPressEvent.KeyChar) && !char.IsDigit(KeyPressEvent.KeyChar) &&
(KeyPressEvent.KeyChar != '.')) {
KeyPressEvent.Handled = true;
}
if ((KeyPressEvent.KeyChar == '.') && ((senderObject as TextBox).Text.IndexOf('.') > -1)) {
KeyPressEvent.Handled = true;
}
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e) {}
}
}
Production:
Dans le code ci-dessus, nous créons une zone de texte qui n’accepte que les valeurs numériques de l’utilisateur avec la vue NumberUpDown
en C#. Dans la fonction numericUpDown1_KeyPress()
, nous avons ajouté une vérification pour .
valeur pour permettre à l’utilisateur de saisir des valeurs de virgule décimale. Cette zone de texte ne prend que des valeurs numériques à 2 chiffres.
Numbers Only TextBox Avec la vue TextBox
en C#
Si nous ne voulons pas utiliser de vues propriétaires, nous pouvons également modifier la vue originale TextBox
pour n’accepter que des valeurs numériques. Nous pouvons utiliser la propriété KeyPressEventArgs.Handled
dans la fonction TextBox_KeyPress()
pour spécifier quelles touches doivent être gérées par notre zone de texte. L’exemple de code suivant nous montre comment créer une zone de texte qui n’accepte que des valeurs numériques avec la vue TextBox
en C#.
using System;
using System.Windows.Forms;
namespace textbox_numbers_only {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e) {}
private void textBox1_KeyPress(object sender, KeyPressEventArgs KeyPressEvent) {
KeyPressEvent.Handled = !char.IsDigit(KeyPressEvent.KeyChar);
}
}
}
Production:
Dans le code ci-dessus, nous avons précisé que notre zone de texte ne doit pas gérer de valeurs non numériques avec la propriété KeyPressEvent.Handled
dans la fonction textBox1_KeyPress()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn