【问题标题】:Using TryParseExact with WindowsForms Textbox将 ParseExact 与 Windows 窗体文本框一起使用
【发布时间】:2011-09-18 20:56:13
【问题描述】:

我目前正在尝试验证文本框,因此只能使用 TryParseExact 输入字母 (a-Z)。

我有一个检查时间的代码,尽管有人可以演示如何仅使用字母来完成。

我的代码如下:

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");
    }
}

【问题讨论】:

  • with letters only 是什么意思?没有数字?没有空格或标点符号?

标签: c# .net winforms validation parsing


【解决方案1】:

这会检查字符串 s 中的所有字符是否都是字母:

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

另请参阅:Char.IsLetter Method (MSDN)

如果您只想接受 ASCII 字母(即 a-z 和 A-Z):

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

【讨论】:

  • 如何在我当前的方法中实现这一点?
  • @Dan:你是在问如何将布尔表达式和if结合起来?
【解决方案2】:

您不应使用任何 try-parse 方法,因为检查字符串是否仅包含 a-Z 字符与解析日期或数字不同。

我认为您可以使用正则表达式来验证输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多