Como formatar valores digitados em TextBox com C#
A formatação de valores digitados em um TextBox
é uma tarefa comum em aplicações C#. Essa funcionalidade é importante para garantir que os dados inseridos pelo usuário sejam válidos e estejam no formato desejado, como números, datas ou moeda. Neste post, vamos aprender como formatar valores digitados em TextBox com C#.
Passo a passo para formatar valores em um TextBox
- Criar um novo projeto
- Abra o Visual Studio e crie um novo projeto do tipo Windows Forms App.
- Abra o Visual Studio e crie um novo projeto do tipo Windows Forms App.
- Adicionar um TextBox e um Button
- Arraste um
TextBox
e umButton
para o seu formulário a partir da Toolbox. OButton
será usado para aplicar a formatação.
- Arraste um
- Configurar o TextBox
- Dê um nome ao
TextBox
, comotextBoxInput
, e aoButton
, comobuttonFormat
.
- Dê um nome ao
- Adicionar o código para formatar o valor
- Agora, você pode adicionar o código que irá formatar o valor digitado no
TextBox
. O exemplo a seguir demonstra como fazer isso.
- Agora, você pode adicionar o código que irá formatar o valor digitado no
Exemplo de código
Aqui está um exemplo simples de como formatar valores em um TextBox
:
using System;
using System.Globalization;
using System.Windows.Forms;
namespace FormatandoTextBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonFormat_Click(object sender, EventArgs e)
{
// Tenta converter o texto digitado para um número decimal
if (decimal.TryParse(textBoxInput.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out decimal number))
{
// Formata o número como moeda
string formattedValue = number.ToString("C", CultureInfo.CurrentCulture);
textBoxInput.Text = formattedValue;
textBoxInput.SelectionStart = textBoxInput.Text.Length; // Posiciona o cursor no final
}
else
{
MessageBox.Show("Por favor, digite um valor numérico válido.");
}
}
}
}
Explicação do código
- buttonFormat_Click: Este método é o manipulador de eventos para o botão que você adicionou ao formulário. Quando o botão é clicado, ele tenta converter o texto digitado em um número decimal;
- decimal.TryParse: Este método tenta converter o texto do
TextBox
em um valor decimal. Ele retornatrue
se a conversão for bem-sucedida efalse
caso contrário; - number.ToString(“C”, CultureInfo.CurrentCulture): Este método formata o número como moeda, utilizando a cultura atual do sistema, que determina o símbolo da moeda e o formato;
- textBoxInput.SelectionStart: Esta linha é usada para posicionar o cursor no final do texto formatado, melhorando a experiência do usuário;
- Tratamento de Exceções: Caso a conversão falhe, uma mensagem é exibida informando que o valor digitado não é válido.
Outro exemplo prático
Os códigos abaixo mostram como fazer isso (incluí-los dentro do evento KeyPress do textBox):
//troca o '.' por ','.
if (e.KeyChar == '.' || e.KeyChar == ',') {
e.KeyChar = ',';
//Verifica se já existe alguma vírgula digitada no TextBox
if (textBox1.Text.Contains(","))
e.Handled = true; //Caso exista, aborte
}
//Permite apenas a digitação de números e da tecla backspace
else if (!char.IsNumber(e.KeyChar) && !(e.KeyChar == (char)Keys.Back))
{
e.Handled = true;
}
No caso da vírgula não ser digitada ou ser digitada seguida de um ou mais números, será preciso forçar a formatação para duas casas decimais no final do valor digitado:
textBox1.Text = Decimal.Parse(textBox1.Text).ToString("N2");
A linha acima precisa ser digitada dentro do evento Leave do textBox. Desta forma a formatação será forçada logo após o textBox perder o foco de entrada.
Se for digitado, por exemplo, 1,689, o valor será arredondado para 1.70.
A formatação de valores em um TextBox
pode melhorar a usabilidade da sua aplicação e garantir que os dados sejam inseridos no formato correto. Você pode adaptar este exemplo para formatar datas, números inteiros ou outros formatos conforme necessário.
CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.
Link do curso: https://go.hotmart.com/L70031146H
Dúvidas ou sugestões sobre como formatar valores digitados em TextBox com C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits