当用户在TextBox中输入值时,如何添加自动追加00?

时间:2013-03-25 16:19:38

标签: c# .net

我的表单中有一些文本框,用户需要输入不同的文章价格,我想要做的是在文本发生变化时自动添加,00。因此,当用户键入123时,它会显示为123,00

我尝试使用下面的代码,但它似乎不起作用:

private void textBox6_TextChanged(object sender, EventArgs e)
    {
        if (!textBox6.Text.Contains(","))

        textBox6.SelectionStart =textBox6.TextLength;
        textBox6.Text += ",00";
    }

任何帮助都将受到高度赞赏

5 个答案:

答案 0 :(得分:1)

使用String.EndsWtih仅检查字符串的结尾。

private void textBox6_TextChanged(object sender, EventArgs e)
{
    if (!textBox6.Text.EndsWith(",00"))
        textBox6.Text += ",00"
}

除了TextChanged事件之外,使用Leave事件,除非您确实需要立即进行更改。每次按下按键时都要进行这样的复杂操作,往往效果不佳。

答案 1 :(得分:1)

使用带有TextBox的按键事件的代码。

答案 2 :(得分:0)

尝试以下代码:

textBox6.BeginInvoke(delegate ()=> 
{
   textBox6.Text +=",00"
});

答案 3 :(得分:0)

就像Jason所说,你可以使用leave事件,如果这不合适,那么将其转换为字符串并将其反馈到文本框中,如下所示:

  private void textBox6_TextChanged(object sender, EventArgs e)
        {

            string myString = textBox6.Text;
            if (!myString.Contains(','))
            {
                myString += ",00";
            }

            textBox6.Text = myString;
        }

我还建议您查看检查以确保用户只输入数值。

答案 4 :(得分:0)

尝试string.Format。

string numStr = textBox6.Text;
decimal num;

if(decimal.TryParse(numStr, out num)){
  textBox6.Text = string.Format("{0:#,##0.00}", num);
}

但是,如果需要逗号','作为小数点分隔符,则需要指定一些文化。