如何格式化窗口表单文本框有千位分隔符和十进制separtor为数字输入
我是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
在文本框中的LostFocus事件中,使用:
textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));
在应用上述逻辑之前,请确保文本是双/整数,否则将引发exception。 这种解决方案相当苛刻,坚韧。
如果您希望格式在特定的文化中而不是当前计算机的文化,那么
textBox1.Text = string.Format(System.Globalization.CultureInfo.GetCultureInfo("id-ID"), "{0:#,##0.00}", double.Parse(textBox1.Text));
上面的例子是印尼货币格式,千分隔符使用点(“。”)而不是逗号(“,”)。
也许你可以使用MaskedTextBox
http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx
失去焦点时,您可以根据输入长度调整遮罩。 希望这有用。