C# Créer une zone de texte qui n'accepte que des chiffres

Minahil Noor 16 février 2024
  1. Créer une Textbox qui n’accepte que les numéros en utilisant la classe KeyPressEventArgs en C#
  2. Créer une Textbox qui n’accepte que les numéros en utilisant la méthode Regex.IsMatch() en C#
  3. Créer une Textbox qui n’accepte que les numéros en utilisant la méthode NumericUpDown
C# Créer une zone de texte qui n'accepte que des chiffres

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

C# TextBox n’accepte que les nombres

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.

C# TextBox n’accepte que les nombres

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:

C# TextBox n’accepte que les chiffres Numérique Up Down

Article connexe - Csharp Textbox