Usuário com melhor resposta
Como formatar um textbox dinamicamente?

Pergunta
-
Pesoal,
Sou iniciante no WPF, e tenho uma aplicação com uma window que possui um teclado númerio virtual, e o requisito é que a medida que o usuário for clicando nos botões do teclado, o valor seja exibido e formatado dinamicamente textbox. Exatamente como em uma tela de depósito bancário.
Alguém pode me ajudar?
Agradeço desde já.
Duan Brito - Analista de Sistemas/Programador
Respostas
-
Pessoal,
Esse código resolve o problema:
private void btnTeclado_Click(object sender, RoutedEventArgs e) { txtValor.Text += ((Button)sender).Content.ToString(); if (txtValor.Text.Length == 1) { txtValor.Text = "0,0" + txtValor.Text; } else { decimal valor = Convert.ToDecimal(txtValor.Text) * 10; txtValor.Text = valor.ToString("N2"); } }
Duan Brito - Analista de Sistemas/Programador- Marcado como Resposta Duan Brito quarta-feira, 17 de agosto de 2011 17:59
Todas as Respostas
-
Bom dia,Você pode usar o evento Clik do botão e no evento pedir para mostrar o valor na textBox. Ex:
private void btnA_Click(object sender, RoutedEventArgs e) { textBox1.Text += 'A'; // arqui é passado o valor para a textbox utilizo o += para concatenar os valores }
Também poderá fazer verificando pelo tabela de codigo ASCII.- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 16 de agosto de 2011 19:12
-
Olá!
Como o Wesley Larentes falou, você pode usar o evneto Click dos botoes...
Entretanto, se você estiver escrevendo a sua aplicação com MVVM, fica muito mais fácil e organizado usar Commands!
Segue um exemplo:
XAML:
Na sua ViewModel:<Button Content="1" Command="{Binding IncluirDigito}" CommandParameter="1"/> <Button Content="2" Command="{Binding IncluirDigito}" CommandParameter="2"/> . . .<br/><TextBox Text="{Binding Visor}"/>
public string Visor { get{return _visor;} set {_visor = value; OnPropertyChanged("Visor");} } public void IncluirDigito_Execute(object parameter) { this.Visor = String.Concat(this.Visor, parameter.ToString()); }
Lembrando que estou usando o RelayCommand (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx)
p.s. Não entendia parte do formatar... Como assim? Explique melhor seu objetivo.
- Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 16 de agosto de 2011 19:12
-
Pessoal,
Vou tentar me expressar melhor.
O problema não está exatamente em exibir os valores que são clicados e sim colocá-los em formato de moeda no textbox, exatamente como em uma tela de deposíto bancário.
Por exemplo: Quando o usuário clicar no 1, é pra aparecer no textbox: 0,01. Em seguida se ele clicar no 2, é pra aparecer no textbox 0,12...e assim sucessivamente.
Duan Brito - Analista de Sistemas/Programador -
Pessoal,
Esse código resolve o problema:
private void btnTeclado_Click(object sender, RoutedEventArgs e) { txtValor.Text += ((Button)sender).Content.ToString(); if (txtValor.Text.Length == 1) { txtValor.Text = "0,0" + txtValor.Text; } else { decimal valor = Convert.ToDecimal(txtValor.Text) * 10; txtValor.Text = valor.ToString("N2"); } }
Duan Brito - Analista de Sistemas/Programador -
Pessoal,
Esse código resolve o problema:
private void btnTeclado_Click(object sender, RoutedEventArgs e) { txtValor.Text += ((Button)sender).Content.ToString(); if (txtValor.Text.Length == 1) { txtValor.Text = "0,0" + txtValor.Text; } else { decimal valor = Convert.ToDecimal(txtValor.Text) * 10; txtValor.Text = valor.ToString("N2"); } }
Duan Brito - Analista de Sistemas/Programador- Marcado como Resposta Duan Brito quarta-feira, 17 de agosto de 2011 17:59