0

我的要求是我想在我的文本框中输入十进制值,如果用户输入 .dot 他必须输入 3 个十进制值否则它不应该允许离开文本框。如果用户没有输入 .dot 他可能允许输入任何数字如何在 .net winforms 文本框中进行限制。

十进制((1-9),3)

在小数位之前,它可以是任何十进制值,例如

真实案例

123--- 1232.004--- 123123123123.555--- 3123123123--- .231---

假案

123.--- 222.33--- 123.3--- 21312323.1232133--- .2--- .12313---

4

3 回答 3

2

订阅 TextBox Validating事件:

private void TextBox_Validating(object sender, CancelEventArgs e)
{
    string Text = ((TextBox)sender).Text;        
    string[] Parts = Text.Split(new char[] { '.' });
    decimal Dummy;
    e.Cancel = !decimal.TryParse(Text, out Dummy) || 
        ((Parts.Length == 2) && (Parts[1].Length != 3));
}

或者您可以使用正则表达式进行文本验证或其他。但是如果您取消对文本框的验证,那么主要思想就在这里,那么默认情况下用户不能离开它。还要检查AutoValidate属性。

于 2010-07-20T12:49:26.273 回答
1

只需处理任何一个Validating事件并检查.,如果您发现任何确保它后跟 3 位数字。

只需使用IndexOf查找点,检查字符串在该索引之后是否包含至少 3 个字符,然后取出接下来的 3 个字符并确保它们都是数字。

于 2010-07-20T12:52:15.663 回答
0

或者将条目分成两个文本框,一个用于点前的数字,第二个用于点后的三位数字。

有点像输入带有 3 个文本框的 SSN。

于 2010-07-21T21:36:35.750 回答