如何格式化窗口形式文本框与千位分隔符和十进制separtor为数字输入

eth*_*hem 9 c# formatting winforms

我是Winforms的新手,并尝试做点什么.我正在使用C#.我正在使用Windows窗体,我在表单上放了一个8文本框,所有都是带小数值的数字.我想达到以下结果.我的小数点分隔符是逗号,千位分隔符是一个点.我见过像##.###,##或其他什么但不记得的东西....有人可以建议如何实现以下方法吗?

所以我的想法是当我输入1234并将焦点从文本框中保留时应格式化,当我再次进入文本框时,千位分隔符不应仅格式化小数分隔符.

我想我会使用像LostFocus这样的活动吗?

输入结果

1234 1.234,00

12.34 12,34

12,34 12,34

1234567 1.234.567,00

12,34 12,34

12345,67 12.345,67

Fen*_*ndy 12

在文本框中的LostFocus事件中,使用:

textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));
Run Code Online (Sandbox Code Playgroud)

在应用上述逻辑之前,请确保文本是双/整数,否则将引发异常.这种解决方案相当苛刻,坚韧.

如果您希望格式在特定的文化中而不是当前计算机的文化,那么

textBox1.Text = string.Format(System.Globalization.CultureInfo.GetCultureInfo("id-ID"), "{0:#,##0.00}", double.Parse(textBox1.Text));
Run Code Online (Sandbox Code Playgroud)

上面的例子是印尼货币格式,千分隔符使用点(".")而不是逗号(",").