Использование TryParseExact с текстовым полем WindowsForms - PullRequest
1 голос
/ 20 июня 2011

Я сейчас пытаюсь проверить текстовое поле, поэтому можно вводить только буквы (aZ) с использованием 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");
    }
}

Ответы [ 2 ]

3 голосов
/ 20 июня 2011

Это проверяет, являются ли все символы в строке s буквой:

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

См. Также: Метод Char.IsLetter (MSDN)

Если вы хотите принимать только буквы ASCII (т.е. a-z и A-Z):

bool result = s.All(ch => (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'));
0 голосов
/ 20 июня 2011

Вы не должны использовать какой-либо метод try-parse, потому что проверка, содержит ли строка только aZ-символы, отличается от анализа даты или числа.

Я думаю, вы можете использовать регулярные выражения для проверки ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...