Números somente em TextBox em C#

Muhammad Maisam Abbas 15 fevereiro 2024
  1. Numbers Only TextBox com a visualização NumberUpDown em C#
  2. Numbers Only TextBox com a visualização TextBox em C#
Números somente em TextBox em C#

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:

C# caixa de texto número apenas 1

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:

Número da caixa de texto C# apenas 2

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

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

Artigo relacionado - Csharp GUI