Nombres uniquement dans TextBox en C#

Muhammad Maisam Abbas 15 février 2024
  1. Numbers Only TextBox avec la vue NumberUpDown en C#
  2. Numbers Only TextBox Avec la vue TextBox en C#
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:

Numéro de zone de texte C# 1 uniquement

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:

Numéro de zone de texte C# uniquement 2

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().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Csharp GUI