Solo numeri in TextBox in C#

Muhammad Maisam Abbas 12 ottobre 2023
  1. Solo numeri Casella di testo con la vista NumberUpDown in C#
  2. Solo Numbers TextBox con la vista TextBox in C#
Solo numeri in TextBox in C#

Questo tutorial introdurrà i metodi per creare una casella di testo che accetta solo numeri in C#.

Solo numeri Casella di testo con la vista NumberUpDown in C#

La vista NumberUpDown viene utilizzata per ottenere l’input numerico dall’utente in C#. Per aggiungere una vista NumberUpDown nella nostra applicazione Windows Form, selezioniamo semplicemente NumberUpDown dalla casella degli strumenti e trascinala nel nostro modulo. La visualizzazione NumberUpDown non accetta valori non numerici dall’utente. Ci permette anche di spostare un valore in alto o in basso con i tasti cursore. Il seguente esempio di codice ci mostra come possiamo creare una casella di testo che accetta solo valori numerici dall’utente con la vista NumberUpDown in 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) {}
  }
}

Produzione:

Solo numero casella di testo C# 1

Nel codice sopra, creiamo una casella di testo che accetta solo valori numerici dall’utente con la vista NumberUpDown in C#. Nella funzione numericUpDown1_KeyPress(), abbiamo aggiunto un segno di spunta per . valore per consentire all’utente di inserire valori di virgola decimale. Questa casella di testo accetta solo valori numerici con 2 cifre.

Solo Numbers TextBox con la vista TextBox in C#

Se non vogliamo utilizzare alcuna vista proprietaria, possiamo anche modificare la vista TextBox originale per accettare solo valori numerici. Possiamo usare la proprietà KeyPressEventArgs.Handled all’interno della funzione TextBox_KeyPress() per specificare quali pressioni di tasti devono essere gestite dalla nostra casella di testo. Il seguente esempio di codice ci mostra come possiamo creare una casella di testo che accetta solo valori numerici con la vista TextBox in 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);
    }
  }
}

Produzione:

Solo numero di casella di testo C# 2

Nel codice sopra, abbiamo specificato che la nostra casella di testo non deve gestire alcun valore non numerico con la proprietà KeyPressEvent.Handled nella funzione 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

Articolo correlato - Csharp GUI