Solo numeri in TextBox in C#
-
Solo numeri Casella di testo con la vista
NumberUpDown
inC#
-
Solo Numbers TextBox con la vista
TextBox
inC#
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:
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:
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()
.
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