Números solo en TextBox en C#

Muhammad Maisam Abbas 12 octubre 2023
  1. Cuadro de texto de solo números con la vista NumberUpDown en C#
  2. Cuadro de texto de solo números con la vista TextBox en C#
Números solo en TextBox en C#

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:

C# número de cuadro de texto solo 1

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:

Número de cuadro de texto de C# solo 2

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

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

Artículo relacionado - Csharp GUI