在Windows应用程序文本框中,用户只能输入十进制值,其中小数位前允许6位数,小数位后2位数。(总位数不能超过8位)
---用户应该能够使用删除和返回按钮。
示例: -
> 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事件感到困惑。
==&GT;我想限制用户输入错误的数据。因此我不使用请假/验证事件,而上述正则表达式不符合条件(123456.22 - 总数字8)。所以请帮助我使用正则表达式。< / p>
谢谢, Prathap。
答案 0 :(得分:0)
您可以使用Control
的{{3}}事件并使用Validating来显示验证错误。
例如,请参阅ErrorProvider文章,其中介绍了如何在“数据格式通知”中使用它们。部分。
答案 1 :(得分:0)
你只需要调用你的方法
public bool IsDecimalLimitedtoTwoDigits(string inputvalue)
{
Regex isnumber = new Regex(@"^[\d]{1,6}([.]{1}[\d]{1,2})?$");
return isnumber.IsMatch(inputvalue);
}
在Textbox Leave
事件
或
如果您有任何submit
按钮或save
按钮,请验证按钮点击事件中的代码
您可以使用MessageBox
或使用Errorprovider
控件
如果您想在输入时验证数据,则必须在TextChanged
或KeyPress
事件中添加代码
在按键事件中添加
if (! IsDecimalLimitedtoTwoDigits(textbox1.text)
{
e.Handled = true;
}