2011-06-20 16 views
1

我目前正在嘗試驗證文本框,因此只能使用TryParseExact輸入字母(a-Z)。對WindowsForms使用TryParseExact文本框

我有一個檢查時間的代碼,雖然有人可以證明這隻能用字母來完成。

我的代碼如下:

private void textBox2_Validating(object sender, CancelEventArgs e) 
{ 
    DateTime dateEntered; 

    if (DateTime.TryParseExact(textBox2.Text, "HH:mm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out dateEntered)) 
    { 

    } 
    else 
    { 
     MessageBox.Show("You need to enter valid 24 hour time"); 
    } 
} 
+0

你是什麼意思'只有字母'?沒有號碼?沒有空格或標點符號? –

+0

@ agent-j這是正確的 – Dan

回答

3

此檢查在一個字符串s所有字符是字母:

bool result = s.All(ch => char.IsLetter(ch)); 

參見:Char.IsLetter Method (MSDN)

如果你想接受只有ASCII字母(即az和AZ):

bool result = s.All(ch => (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')); 
+0

我怎麼能實現這個到我目前的方法? – Dan

+0

@Dan:你問的是如何組合一個布爾表達式和'if'? – dtb

+0

@Dan:[if-else(C#Reference)](http://msdn.microsoft.com/en-us/library/5011f09h.aspx) – dtb

0

您不應該使用任何try-parse方法,因爲檢查字符串是否只包含-Z字符與解析日期或數字不同。

我認爲你可以使用正則表達式來驗證輸入。