Números somente em TextBox em C#
-
Numbers Only TextBox com a visualização
NumberUpDownemC# -
Numbers Only TextBox com a visualização
TextBoxemC#
Este tutorial irá apresentar os métodos para criar uma caixa de texto que aceita apenas números em C#.
Numbers Only TextBox com a visualização NumberUpDown em C#
A visualização NumberUpDown é usada para obter a entrada numérica do usuário em C#. Para adicionar uma visualização NumberUpDown em nosso aplicativo Windows Form, basta selecionar NumberUpDown da caixa de ferramentas e arrastá-lo para o nosso formulário. A visualização NumberUpDown não obtém nenhum valor não numérico do usuário. Também nos permite mover um valor para cima ou para baixo com as teclas do cursor. O exemplo de código a seguir nos mostra como podemos criar uma caixa de texto que aceita apenas valores numéricos do usuário com a exibição NumberUpDown em 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) {}
}
}
Resultado:

No código acima, criamos uma caixa de texto que aceita apenas valores numéricos do usuário com a visualização NumberUpDown em C#. Na função numericUpDown1_KeyPress(), adicionamos uma verificação para . valor para permitir que o usuário insira valores de casas decimais. Esta caixa de texto aceita apenas valores numéricos com 2 dígitos.
Numbers Only TextBox com a visualização TextBox em C#
Se não quisermos usar nenhuma visão proprietária, também podemos modificar a visão TextBox original para aceitar apenas valores numéricos. Podemos usar a propriedade KeyPressEventArgs.Handled dentro da função TextBox_KeyPress() para especificar quais pressionamentos de tecla devem ser controlados por nossa caixa de texto. O exemplo de código a seguir nos mostra como podemos criar uma caixa de texto que aceita apenas valores numéricos com a visualização TextBox em 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);
}
}
}
Resultado:

No código acima, especificamos que nossa caixa de texto não deve lidar com nenhum valor não numérico com a propriedade KeyPressEvent.Handled na função 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