2010-07-20 68 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。

相關問題