Números solo en TextBox en C#
-
Cuadro de texto de solo números con la vista
NumberUpDown
enC#
-
Cuadro de texto de solo números con la vista
TextBox
enC#
Este tutorial presentará los métodos para crear un cuadro de texto que solo acepta números en C#.
Cuadro de texto de solo números con la vista NumberUpDown
en C#
La vista NumberUpDown
se utiliza para obtener entradas numéricas del usuario en C#. Para agregar una vista NumberUpDown
en nuestra aplicación Windows Form, simplemente seleccionamos NumberUpDown
en la caja de herramientas y la arrastramos a nuestro formulario. La vista NumberUpDown
no toma ningún valor no numérico del usuario. También nos permite mover un valor hacia arriba o hacia abajo con las teclas del cursor. El siguiente ejemplo de código nos muestra cómo podemos crear un cuadro de texto que solo acepta valores numéricos del usuario con la vista 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) {}
}
}
Producción:
En el código anterior, creamos un cuadro de texto que solo acepta valores numéricos del usuario con la vista NumberUpDown
en C#. En la función numericUpDown1_KeyPress()
, hemos agregado una marca para .
valor para permitir al usuario ingresar valores de punto decimal. Este cuadro de texto solo acepta valores numéricos con 2 dígitos.
Cuadro de texto de solo números con la vista TextBox
en C#
Si no queremos utilizar ninguna vista propietaria, también podemos modificar la vista original TextBox
para aceptar solo valores numéricos. Podemos usar la propiedad KeyPressEventArgs.Handled
dentro de la función TextBox_KeyPress()
para especificar qué pulsaciones de teclas deben ser manejadas por nuestro cuadro de texto. El siguiente ejemplo de código nos muestra cómo podemos crear un cuadro de texto que solo acepta valores numéricos con la vista 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);
}
}
}
Producción:
En el código anterior, especificamos que nuestro cuadro de texto no debe manejar ningún valor no numérico con la propiedad KeyPressEvent.Handled
en la función 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