2011-03-21 82 views
1

我正在使用C#,Windows窗體應用程序。測試填充文本框和正確的數據類型

我有6個文本框接受用戶輸入。當點擊「提交」按鈕時,它將數值存儲在一個數組中。我想創建一些東西來檢查文本框的兩件事情1.)文本框中有東西,並且2.)信息只是一個數字,沒有別的。

我被告知try catch循環將能夠做到這一點,但我還沒有弄清楚如何。

感謝您的幫助,您可以提供

回答

1
// In button_click event or somewhere like that 

if (!this.CheckInput(txt_TextBox1)) 
    return; 

if (!this.CheckInput(txt_TextBox2)) 
    return; 

if (!this.CheckInput(txt_TextBox3)) 
    return; 

// Everything OK, do something 

隨後的方法是這樣的:

private bool CheckInput(TextBox textbox) { 

    int test; 

    if (!int.TryParse(textbox.Text.Trim(), out test)) { 
     MessageBox.Show("Invalid input"); 
     return false; 
    } 

    return true; 
} 
1

要檢查,如果事情是你可以調用string.IsNullOrEmpty法文本框。

至於檢查文本框是否只包含數字值,您可能需要考慮preventing users from entering non-numeric values。這將是一種更加用戶友好的方法,而不是在輸入值後防止它。

3

您不希望爲此使用try catch塊 - 您不應該爲標準應用程序流使用異常,因爲它是一個相對昂貴的選項。

檢查,如果它是空的

string.IsNullOrEmpty(textbox1.Text); 

檢查,如果它是一個數字

int result; 
int.TryParse(textbox1.Text), out result); 
1

您可以使用isNullOrEmtpy如巴斯上述建議,以檢查是否有任何用戶輸入。 對於數字只,我建議你使用正則表達式。您可以找到解決方案here