带有1个逗号的TextBox钱格式

use*_*638 2 .net c# textbox currency winforms

我在c#winforms中有一个文本框.

   private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsNumber(e.KeyChar) & (Keys)e.KeyChar != Keys.Back
                & e.KeyChar != ',')
        {
            e.Handled = true;
        }

        base.OnKeyPress(e);
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好,但我可以添加2个逗号,如"100 ,, 00".我怎样才能让用户添加"100,00""100,000,000",1个逗号作为货币格式?

任何帮助将不胜感激.

谢谢.

Cro*_*ono 5

不是你的实际问题的直接答案,但绝对是你应该考虑的建议:使用a MaskedTextBox,而不是a TextBox.

A MaskedTextBox具有Mask充当文本值模式的属性.在你的情况下,适当的面具可能会#,###.##.请注意,根据文档,您的程序集在小数分隔符上可能不是逗号.不过,你仍然可以将其转换为数值,这无论如何都是你想要的.

更新:

作为一个额外的建议,像这样的第三方供应商提供的控件具有更高级的掩码输入,可以使用传统掩码以及基于正则表达式的验证器.如果你能负担得起钱,可能需要考虑一下.