我有一个 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);
}
上面的代码工作得很好,但是我可以添加 2 个逗号,例如 "100,,00"。我怎样才能只让用户添加 "100,00" 或 < strong>"100,000,000" 带 1 个逗号作为货币格式?
任何帮助将不胜感激。
谢谢。
最佳答案
不是对您实际问题的直接答案,但绝对是您应该考虑的建议:使用 MaskedTextBox
为此,不是 TextBox
。
MaskedTextBox
有一个 Mask
充当文本值模式的属性。在您的情况下,适当的掩码可能是#,###.##
。请注意,根据区域性,小数点分隔符上的程序集可能不是逗号。不过,您仍然可以将其转换为数值,这肯定是您想要的。
更新:
作为额外的建议,一些第三方供应商如 devexpress确实提供了具有更高级掩码输入的控件,可以使用传统掩码以及基于正则表达式的验证器。如果你能负担得起这笔钱,这可能是值得考虑的事情。
关于c# - 带 1 个逗号的文本框货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665608/