C# Hacer un cuadro de texto que sólo acepte números
-
Hacer una
textbook
que sólo acepte números usando la claseKeyPressEventArgs
enC#
-
Haz una
textbook
que sólo aceptenúmeros
usando el métodoRegex.IsMatch()
enC#
-
Haz una
textbook
que sólo aceptenúmeros
usando el métodoNumericUpDown
Al hacer Windows Forms
, algunos campos de texto sólo necesitan un valor numérico. Por ejemplo, si queremos obtener los números de teléfono de los usuarios, entonces tendremos que restringir nuestra textbook
a valores numéricos solamente.
En este artículo, nos centraremos en los métodos que hacen que una textbook
sólo acepte números.
Hacer una textbook
que sólo acepte números usando la clase KeyPressEventArgs
en C#
KeyPressEventArgs
es una clase C# que especifica el carácter que se introduce cuando el usuario pulsa una tecla. Su propiedad KeyChar
devuelve el carácter que el usuario ha tecleado. Aquí hemos usado el evento KeyPress
para limitar nuestra textbook
a valores numéricos solamente.
El código de la tecla que realiza esta acción es el siguiente:
!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.');
Aquí e es un objeto KeyPressEventArgs
que usa la propiedad KeyChar
para obtener la clave introducida.
Código de ejemplo:
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;
}
}
}
}
Producción :
//only allows numeric values in the textbox
Haz una textbook
que sólo acepte números
usando el método Regex.IsMatch()
en C#
En C# podemos usar expresiones regulares para comprobar varios patrones. Una expresión regular es un patrón específico para realizar una acción específica. Expresiones Regulares
es una clase de C# que contiene la definición del método Regex.IsMatch()
. En C#, tenemos ^[0-9]+$
y ^\d+$
expresiones regulares para comprobar si una cadena
es un número.
La sintaxis correcta para usar este método es la siguiente:
Regex.IsMatch(StringName, @"Expression");
Código de ejemplo:
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 = "";
}
}
}
}
Producción :
//A textbox created that only accepts numbers.
Haz una textbook
que sólo acepte números
usando el método NumericUpDown
NumericUpDown
proporciona al usuario una interfaz para introducir un valor numérico usando los botones de arriba y abajo dados con el textbox
. Puedes simplemente arrastrar y soltar un NumericUpDown
desde la Caja de herramientas
para crear una textbook
que sólo acepte números
.
También puedes crear un objeto NumericUpDown
dinámicamente. El código para generar un NumericUpDown
es el siguiente:
private System.Windows.Forms.NumericUpDown numericUpDown;
this.numericUpDown = new System.Windows.Forms.NumericUpDown();
Tiene varias propiedades, que puedes alterar abriendo las Propiedades de Windows
.
Producción: