0

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

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

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

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

任何帮助将不胜感激

4

5 回答 5

1

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

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

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

于 2013-03-25T16:21:44.940 回答
1

将代码与 TextBox 的按键事件一起使用。

于 2013-03-25T16:23:35.013 回答
0

试试下面的代码:

textBox6.BeginInvoke(delegate ()=> 
{
   textBox6.Text +=",00"
});
于 2013-03-25T16:23:42.743 回答
0

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

  private void textBox6_TextChanged(object sender, EventArgs e)
        {

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

            textBox6.Text = myString;
        }

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

于 2013-03-25T16:23:58.147 回答
0

试试 string.Format。

string numStr = textBox6.Text;
decimal num;

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

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

于 2013-03-25T16:24:20.780 回答