2009-12-09 64 views
1

可接受的格式将在文本框:00-00-mach-0-00我需要确保texbox只接受这种特定的格式。我怎么做?

其中,从左边:

  • 00
  • 00项目数
  • mach只是一个标签
  • 0机号,必须是1 ,2,3或4
  • 00压力
+6

什么类型的文本框? WinForm的?网页表单? WPF? Silverlight的? MVC?比照? – 2009-12-09 12:35:16

+0

我们可以得到所需格式的例子吗?我看到了这个规范,但是一个例子也有帮助。 – 2009-12-09 16:47:17

+0

文本框类型是winform – user227788 2009-12-10 08:10:02

回答

0

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

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

然后,您可以检查你有5个个子串:

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

然后检查每个子字符串的正确格式。例如,为了检查4 子串是一个位和任一1,2,3或4:

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

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

+1

听起来更像是正则表达式IMO的完美案例... – 2009-12-09 12:41:44

+0

@ammoQ - 很可能,但OP需要知道有其他方法。 – ChrisF 2009-12-09 13:02:50

+0

chris。听起来不错。我可以让你写一些代码,这样我可以更好地看到你的意思。 thx – user227788 2009-12-10 08:25:58

2

您可以创建一个正则表达式来表示您试图执行的规则,并检查输入是否与Validating事件触发时匹配。

0

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

0

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

  1. 样品我把样品/演示格式作为一个标签或文本的用户,以便他们可以看到我想要他们进入什么。我不会提供一个工具提示,因为它很烦人,他们必须做些事情(鼠标悬停)才能获得提示。我会把它放在可见的地方。
    • Regex的验证在VALIDATE事件添加的正则表达式验证,以确保该数据是有效的(只是0,1,2,3而不是4至9,等等)
    • 输入掩码使用一个输入掩码将帮助用户以所需的格式输入数据。
    • 如果您不想输入掩码并且想要允许自由格式的文本,那么正则表达式对于验证数据更加方便。验证完成后,您可以使用您想要的实际表单格式化它,并将其显示回VALIDATE事件。
相关问题