我需要确保文本框只接受这种特定格式。我怎么做?

时间:2009-12-09 12:32:07

标签: c# winforms

放入文本框的可接受格式:00-00-mach-0-00

从左边开始:

  • 00
  • 00项目编号
  • mach只是一个标记
  • 0机器编号,必须为1,2,3或4
  • 00压力

4 个答案:

答案 0 :(得分:2)

您可以创建一个表示您尝试强制执行的规则的正则表达式,并在验证事件触发时检查输入是否匹配。

答案 1 :(得分:0)

您需要拆分输入。一种方法是使用String.Split并将-作为拆分字符。

string input[] = inputString.Split('-');

然后你可以检查你有5个子字符串:

if (input.Length != 5)
{
    // Incorrect format
}

然后检查每个子字符串的格式是否正确。例如,要检查4 th 子字符串是否为数字,并且是1,2,3或4:

int number;
if (Int32.TryParse(input[3], out number))
{
    if (number < 1 || number > 4)
    {
        // Incorrect format
    }
}

当文本框失去焦点时执行此操作。

答案 2 :(得分:0)

我会使用MaskedTextBox控件。在控件的属性框中,单击“蒙版”并将“蒙版描述”设置为“自定义”。这个掩码应该适合你:“00-00-m \ ach-0-00”您可能需要在使用上面的分割方法之后添加额外的有效性检查。但它应该为你节省一些额外的编码。

答案 3 :(得分:0)

在这种情况下我会做几件事:

  1. 示例我会将示例/演示格式作为标签或文本提供给用户,以便他们可以看到我希望他们输入的内容。我不会把工具提示,因为它很烦人,他们必须做一些事情(鼠标悬停)来获得提示。我会把它放在可见的地方。
    • 正则表达式验证在VALIDATE事件中添加正则表达式验证以确保数据有效(仅0,1,2,3而不是4到9;等)
    • 输入掩码使用输入掩码可帮助用户以所需格式输入数据。
    • 如果您不想要输入掩码并希望允许自由格式文本,则正则表达式更方便您验证数据。验证后,您可以使用所需的实际格式对其进行格式化,并将其显示在VALIDATE事件中。