如何限制文本框输入小数值,允许小数前最多6位,小数后最多2位

本文关键字:小数 2位 6位 许小数 文本 何限制 输入 | 更新日期: 2023-09-27 17:58:28

在windows应用程序文本框中,用户只能在允许小数前6位和小数后2位的位置输入十进制值。(总位数不能超过8)

---用户应该能够使用"删除"answers"返回"按钮。

示例:-

> Valid - 123456.22 , 12.22,.33,0.44,123.45(123456.22 - total digits 8)
> Invalid - 1234567.22,123.222,-88.99,-888.999

下面是我用来限制的正则表达式。

 public bool IsDecimalLimitedtoTwoDigits(string inputvalue)
        {
            Regex isnumber = new Regex(@"^['d]{1,6}([.]{1}['d]{1,2})?$");
            return isnumber.IsMatch(inputvalue);
        }

当用户离开单元格时,我在Datagridview中使用验证事件时,上面的代码运行良好。

现在我对用于使用上述方法的Textbox事件感到困惑。

===>我想限制用户输入错误的数据。所以我不使用离开/验证事件,并且上面的正则表达式不满足标准(123456.22-总数字8)。所以请帮助我处理正则表达式。

谢谢,Prathap。

如何限制文本框输入小数值,允许小数前最多6位,小数后最多2位

您可以使用Control的Validating事件并使用ErrorProvider显示验证错误。

例如,请参阅这篇文章,它在"数据格式通知"部分描述了它们的使用。

您只需将方法称为

public bool IsDecimalLimitedtoTwoDigits(string inputvalue)
        {
            Regex isnumber = new Regex(@"^['d]{1,6}([.]{1}['d]{1,2})?$");
            return isnumber.IsMatch(inputvalue);
        }

Textbox Leave事件中

如果您有任何submit按钮或save按钮,请验证按钮点击事件内的代码

您可以使用MessageBoxErrorprovider控制显示错误消息

如果要在输入时验证数据,则必须在TextChangedKeyPress事件中添加代码

在按键事件中添加

 if (! IsDecimalLimitedtoTwoDigits(textbox1.text)
        {
            e.Handled = true;
        }