Limitar a quantidade de caracteres ou números que um usuário pode digitar em um TextBox é uma prática comum em aplicações Windows Forms. Isso ajuda a garantir que os dados inseridos atendam a critérios específicos, como tamanho máximo ou formato. Neste post, vamos explorar como limitar caracteres e números em TextBox no C#.

Exemplo de código para limitar caracteres

using System;
using System.Windows.Forms;

namespace LimitarCaracteres
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
            textBoxInput.MaxLength = 10; // Limita o número máximo de caracteres a 10
        }
    }
}

Limitar apenas números

Se você deseja que o TextBox aceite apenas números, você pode manipular o evento KeyPress para filtrar as entradas. Veja como fazer isso:

Exemplo de código para aceitar apenas números

private void textBoxInput_KeyPress(object sender, KeyPressEventArgs e)
{
    // Verifica se a tecla pressionada não é um número e não é a tecla Backspace
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
    {
        e.Handled = true; // Se não for um número, ignora a entrada
    }
}

Combinando limitação de caracteres e aceitar apenas números

Você pode combinar as duas abordagens para limitar tanto o número de caracteres quanto garantir que apenas números sejam inseridos. O código abaixo demonstra como fazer isso:

Exemplo de código combinado

using System;
using System.Windows.Forms;

namespace LimitarCaracteresENumeros
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
            textBoxInput.MaxLength = 5; // Limita o número máximo de caracteres a 5
        }

        private void textBoxInput_KeyPress(object sender, KeyPressEventArgs e)
        {
            // Verifica se a tecla pressionada não é um número ou não é Backspace
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
            {
                e.Handled = true; // Ignora a entrada se não for um número
            }
        }
    }
}

Outro exemplo prático

Como fazer esses bloqueios com letras, números e caracteres especiais e deixar a sua aplicação mais robusta. Veja:

/* Os códigos abaixo devem ser inseridos no evento "onChange" do componente TextBox *\
       
//impede a digitação de números           
if (!char.IsLetter(e.KeyChar) && !(e.KeyChar == (char)Keys.Back) && !(e.KeyChar == (char)Keys.Space))e.Handled = true;

//impede a digitação de letras e caracteres especiais   
if (!char.IsNumber(e.KeyChar) && !Char.IsControl(e.KeyChar) && !(e.KeyChar == (char)Keys.Space)) e.Handled = true;    

//bloqueia a digitação de caracteres não permitidos 
string caracteresPermitidos = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

if (!(caracteresPermitidos.Contains(e.KeyChar.ToString().ToUpper()))) {
   e.Handled = true;
}

Limitar caracteres e números em um TextBox é uma prática importante para melhorar a experiência do usuário e garantir a integridade dos dados.

Usando a propriedade MaxLength e manipulando o evento KeyPress, você pode facilmente implementar essas limitações em sua aplicação Windows Forms.

Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre como limitar caracteres e números em TextBox no C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
 https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *