2011-05-13 72 views
1

如何验证文本框,而不允许Windows窗体应用程序中使用C#.net 在我的项目中.i我可以验证文本框,不允许空格.... 在这两件事情。 ............ 1.仅限空格不允许 2.输入一个或两个字符后文本框接受空格...........在Windows窗体应用程序验证文本框

+0

参考http://stackoverflow.com/questions/2703461/regular-expression-alphanumerics-with-space http://stackoverflow.com/questions/924287/regular -expressio n-for-alphnumeric-and-space。你必须修改正则表达式来满足你的要求。 – 2011-05-13 04:49:41

+0

你的意思是说用户不能从'space'开始,但可以使用后者吗? – V4Vendetta 2011-05-13 04:54:19

+0

嗨,对不起,我没有看到你的问题,我认为它不是一个好的方法来回答两次在stackoverflow。所以我想建议你在http:// stackoverflow之前几分钟回答下面的链接。com/questions/5987924/validating-textbox-in-windows-form-applications/5988074#5988074 – SharpUrBrain 2011-05-13 06:53:35

回答

1

您可以限制用户通过处理KeyPress事件进入TextBox中的空间

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = (e.KeyChar == (char)Keys.Space); 
} 

编辑

在箱体空间正在进入一个或两个字符之后允许的,那么你应该使用

textbox1.Text.TrimStart()

+0

我认为空格不允许只在文本的开头,但可以稍后输入。 – 2011-05-13 04:51:54

+0

如果问题只是我们在开始时不允许空格,那么执行TrimStart()将会起作用。然而,OP表示他们希望在留出空间之前拥有一个或两个字符。如果它是一个字符,你很好。但是,如果是两个,这种方法将不起作用。 – IAmTimCorey 2011-05-13 04:59:42

+0

@BiggsTRC这将如何改变,'TrimStart'从一开始就删除了一个或两个字符之后的空格/空格不会成为问题。 – V4Vendetta 2011-05-13 05:03:08

0

这取决于你所说的“验证”是什么。 Winforms具有在您离开控件时触发的ValidatingValidate事件。你可以点击这些,然后验证你的文本框。但是,如果您想在输入时进行验证,则您希望使用Key_Press事件来检查每次按下某个键以确保该框中的信息仍然有效。

这里是一个验证SO文章:

WinForm UI Validation

在有这些问题的答案提供一些不同的想法取决于你想要做什么。无论你决定什么,一定要确保你正确地检查领域。例如,如果您使用Key_Press,请不要在允许空格之前统计字段中有多少个字符。如果你这样做了,用户可以将光标移动到开始处和按下的空间。这会搞乱你的系统。即使您正在使用Key_Press事件,请务必在验证时检查整个字段。您可以像使用RegEx一样复杂的模式来执行此操作。

0

如果您不希望允许除TextBox中的字母数字字符之外的任何其他字符条目,则可以在TextBox的KeyPress事件中执行此操作。

在KeyPress事件中,您需要检查输入的字符是字母还是数字。

Char.IsLetterOrDigit(e.KeyChar)

如果是,则允许按键设置

“e.Handled =假”

,否则不允许在按键通过设置 “e.Handled = TRUE”

private void txtCardID_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (Char.IsLetterOrDigit(e.KeyChar)  // Allowing only any letter OR Digit 
     || e.KeyChar == '\b')     // Allowing BackSpace character 
     { 
      e.Handled = false; 
     } 
     else 
     { 
      e.Handled = true; 
     } 
    } 
相关问题