C# Créer une zone de texte qui n'accepte que des chiffres
-
Créer une
Textbox
qui n’accepte que lesnuméros
en utilisant la classeKeyPressEventArgs
enC#
-
Créer une
Textbox
qui n’accepte que lesnuméros
en utilisant la méthodeRegex.IsMatch()
enC#
-
Créer une
Textbox
qui n’accepte que lesnuméros
en utilisant la méthodeNumericUpDown
Lors de la création de Windows Forms
, certains champs de texte n’ont besoin que d’une valeur numérique. Par exemple, si nous voulons obtenir les numéros de téléphone des utilisateurs, nous devrons limiter notre zone de texte
aux seules valeurs numériques.
Dans cet article, nous nous concentrerons sur les méthodes qui permettent de créer une textbox
qui n’accepte que des chiffres.
Créer une Textbox
qui n’accepte que les numéros
en utilisant la classe KeyPressEventArgs
en C#
KeyPressEventArgs
est une classe C# qui spécifie le caractère saisi lorsqu’un utilisateur appuie sur une touche. Sa propriété KeyChar
retourne le caractère que l’utilisateur a tapé. Nous avons ici utilisé l’événement KeyPress
pour limiter notre textbox
à des valeurs numériques uniquement.
Le code de la clé qui effectue cette action est le suivant:
!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.');
Voici e est un objet KeyPressEventArgs
qui utilise la propriété KeyChar
pour récupérer la clé saisie.
Exemple de code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.')) {
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1)) {
e.Handled = true;
}
}
}
}
Production:
// only allows numeric values in the textbox
Créer une Textbox
qui n’accepte que les numéros
en utilisant la méthode Regex.IsMatch()
en C#
En C#, nous pouvons utiliser des expressions régulières pour vérifier divers motifs. Une expression régulière est un motif spécifique pour effectuer une action spécifique. Les expressions régulières
sont une classe C# qui contient la définition de la méthode Regex.IsMatch()
. En C#, nous avons les expressions régulières ^[0-9]+$
et ^\d+$
pour vérifier si une chaîne
est un nombre.
La syntaxe correcte pour utiliser cette méthode est la suivante:
Regex.IsMatch(StringName, @"Expression");
Exemple de code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e) {
if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, " ^ [0-9]")) {
textBox1.Text = "";
}
}
}
}
Production:
// A textbox created that only accepts numbers.
Créer une Textbox
qui n’accepte que les numéros
en utilisant la méthode NumericUpDown
La fonction NumericUpDown
fournit à l’utilisateur une interface pour entrer une valeur numérique en utilisant les boutons haut et bas fournis avec la boîte de texte
. Vous pouvez simplement glisser et déposer un NumericUpDown
depuis la Toolbox
pour créer une textbox
qui n’accepte que des names
.
Vous pouvez également créer un objet NumericUpDown
de façon dynamique. Le code pour générer un NumericUpDown
est le suivant:
private System.Windows.Forms.NumericUpDown numericUpDown;
this.numericUpDown = new System.Windows.Forms.NumericUpDown();
Il a plusieurs propriétés, que vous pouvez modifier en ouvrant les Properties Windows
.
Production: