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.
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
Sobre o Autor
0 Comentários