任何人都可以告诉我如何格式化文本框的文本值

时间:2011-12-27 15:47:46

标签: c# winforms

大家好我正在做一个程序来舍入文本框中输入的文本。样本输入

Entered value      output value
  100                100.00
   50                 50.00

像这样我想在textBox1_Leave事件

上格式化我的文本框值

我试过这个,但对我不起作用

private void textBox1_Leave(object sender, EventArgs e)
{
    string str = string.Format(textBox1.Text, "##.00");
    textBox1.Text = str;
}

任何人都可以帮助我

2 个答案:

答案 0 :(得分:6)

您需要将该字符串转换为数字,然后调用格式。此外,您使用的格式不正确。您需要使用占位符,例如

string str = String.Format("{0:F2}", Double.Parse(textBox1.Text));
textBox1.Text = str;

当然,如果您输入非数字输入,这将会呕吐。为此,您可以进行一些基本验证

double d = 0;            
textBox1.Text = 
       Double.TryParse(textBox1.Text, out d) ? String.Format("{0:F2}", d) : "0";

答案 1 :(得分:3)

问题是您的文本框值已经是字符串。试试这个:

private void textBox1_Leave(object sender, EventArgs e)
{
    var input = Convert.ToDouble(textbox1.Text);
    textBox1.Text = input.Tostring("#.00");
}

注意:您需要在转换时捕获格式异常,但输入不是数字。