我有一个文本框,我总是想要$ ###,###,###,## 0.00格式的数据(比如$ 25.00)。现在输入一些数据我想得到相同的格式。例如,如果我输入25,它应转换为25.00美元,如果我输入' as23afs' (字符)它应该转换为$ 0.00。我该怎么做?请提出解决方案。如果我可以使用正则表达式,我该怎么办?
答案 0 :(得分:4)
看看这些插件:
答案 1 :(得分:0)
我正面临同样的问题,现在我修复了通过设置文本框自定义格式: 在KeyPress事件中使用此代码:
private void yourtextbox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.Handled = !char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '$') // 8 is back space
{
if (e.KeyChar == (char)13) // 13 is Enter
{
yourtextbox.Text = string.Format("${0:#,##0.00}", double.Parse(yourtextbox.Text));
}
}
}
现在你的文本框只接受数字和','和'$'
现在如果您输入'as23afs'(字符),它应该转换为$ 0.00。 使用此代码:
yourtextbox.Text = double.Parse("0").ToString("N2");//"N2" to show 00 after ','.
我认为我希望这段代码可以帮助每个人在文本框中查找货币格式。
所以完整的代码应该是这样的:
public Form1()
{
InitializeComponent();
yourtextbox.Text = double.Parse("0").ToString("N2");//"N2" to show 00 after ','
}
private void yourtextbox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.Handled = !char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '$') // 8 is back space
{
if (e.KeyChar == (char)13) // 13 is Enter
{
yourtextbox.Text = string.Format("${0:#,##0.00}", double.Parse(yourtextbox.Text));
}
}
}