Olá, estou meio confuso com questão a formatação de valores monetários usando o controlador 'textBox' no Windows Forms.
Atualmente estou usando o seguinte código no evento Leave da minha textBox:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt-BR");
textPreco.Text = (Decimal.Parse(textPreco.Text) / 100).ToString("C");
E eu tenho o resultado esperado para inputs como esses:
1000 => 10,00
1234 => 12,34
199 => 1,99
Ou seja, quando eu alimento a textBox com valores inteiros tudo sai conforme o esperado. Porém se eu informar um valor decimal sai assim:
10,00 => 0,10
12,34 => 0,12
1,99 => 0,02
O mesmo acontece se eu trocar esse trecho de código:
textPreco.Text = (Decimal.Parse(textPreco.Text)/100).ToString("C");
por esse:
textPreco.Text = string.Format("{0:#.00}", Convert.ToDouble(textPreco.Text)/100);
Resumindo eu gostaria de escrever na minha textBox tanto 1000 quanto 10,00 e converter em 10,00 ou R$10,00
Grato desde já!