C# Crea una casella di testo che accetta solo numeri
-
Crea una
Textbox
che accetti solonumeri
usando la classeKeyPressEventArgs
inC#
-
Crea una
Textbox
che accetti solonumeri
utilizzando il metodoRegex.IsMatch()
inC#
-
Crea una
Textbox
che accetti solonumeri
utilizzando il metodoNumericUpDown
Durante la creazione di Windows Forms
, alcuni campi di testo richiedono solo un valore numerico. Ad esempio, se vogliamo ottenere i numeri di telefono dagli utenti, dovremo limitare la nostra casella di testo
solo a valori numerici.
In questo articolo ci concentreremo sui metodi che creano una textbox
che accetta solo numeri.
Crea una Textbox
che accetti solo numeri
usando la classe KeyPressEventArgs
in C#
KeyPressEventArgs
è una classe C# che specifica il carattere immesso quando un utente preme un tasto. La sua proprietà KeyChar
restituisce il carattere digitato dall’utente. Qui abbiamo utilizzato l’evento KeyPress
per limitare la nostra casella di testo
solo a valori numerici.
Il codice chiave che esegue questa azione è il seguente:
!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.');
Qui e
è un oggetto KeyPressEventArgs
che utilizza la proprietà KeyChar
per recuperare la chiave inserita.
Codice di esempio:
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;
}
}
}
}
Produzione:
// only allows numeric values in the textbox
Crea una Textbox
che accetti solo numeri
utilizzando il metodo Regex.IsMatch()
in C#
In C# possiamo usare espressioni regolari per controllare vari modelli. Un’espressione regolare è un modello specifico per eseguire un’azione specifica. RegularExpressions
è una classe C# che contiene la definizione del metodo Regex.IsMatch()
. In C#, abbiamo espressioni regolari ^[0-9]+$
e ^\d+$
per verificare se una stringa
è un numero.
La sintassi corretta per utilizzare questo metodo è la seguente:
Regex.IsMatch(StringName, @"Expression");
Codice di esempio:
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 = "";
}
}
}
}
Produzione:
// A textbox created that only accepts numbers.
Crea una Textbox
che accetti solo numeri
utilizzando il metodo NumericUpDown
NumericUpDown
fornisce all’utente un’interfaccia per inserire un valore numerico usando i pulsanti su e giù forniti con la textbox
. Puoi semplicemente trascinare e rilasciare un NumericUpDown
dalla Casella degli strumenti
per creare una textbox
che accetta solo numeri
.
Puoi anche creare dinamicamente un oggetto NumericUpDown
. Il codice per generare un NumericUpDown
è il seguente:
private System.Windows.Forms.NumericUpDown numericUpDown;
this.numericUpDown = new System.Windows.Forms.NumericUpDown();
Ha diverse proprietà che puoi modificare aprendo le Finestre delle proprietà
.
Produzione: