2010-07-20 29 views
0

我的需求是我想在我的文本框中输入小数值,如果用户输入.dot,他必须输入3个十进制值,其他明智的是它不应该允许离开textbox.if te用户没有输入.dot他可能允许输入任何数字如何限制在.ne​​t winforms文本框中。在Windows应用程序中筛选文本框的问题

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

小数位之前,它可以是像

真情况

123任何十进制值--- 1232.004 --- 123123123123.555 --- 3123123123 --- 0.231 ---

虚假情况

123 .--- 222.33 --- 123.3 --- 21312323.1232133 --- 0.2 --- 0.12313 ---

回答

2

订阅文本框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)); 
} 

或者您可以使用Regular Expressions进行文本验证或其他操作。但主要想法是在这里,如果您取消对文本框的验证,则用户不能默认保留它。还请检查AutoValidate财产。

1

只要处理Validating事件并检查.,如果您发现任何请确保其后跟3位数字。

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

0

或者打破两个文本框的入口,一个用于点之前的数字,另一个用于点之后的三个数字。

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

相关问题