在Windows窗体应用程序验证文本框
如何验证文本框,而不允许Windows窗体应用程序中使用C#.net 在我的项目中.i我可以验证文本框,不允许空格.... 在这两件事情。 ............ 1.仅限空格不允许 2.输入一个或两个字符后文本框接受空格...........在Windows窗体应用程序验证文本框
您可以限制用户通过处理KeyPress
事件进入TextBox
中的空间
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = (e.KeyChar == (char)Keys.Space);
}
编辑
在箱体空间正在进入一个或两个字符之后允许的,那么你应该使用
textbox1.Text.TrimStart()
我认为空格不允许只在文本的开头,但可以稍后输入。 – 2011-05-13 04:51:54
如果问题只是我们在开始时不允许空格,那么执行TrimStart()将会起作用。然而,OP表示他们希望在留出空间之前拥有一个或两个字符。如果它是一个字符,你很好。但是,如果是两个,这种方法将不起作用。 – IAmTimCorey 2011-05-13 04:59:42
@BiggsTRC这将如何改变,'TrimStart'从一开始就删除了一个或两个字符之后的空格/空格不会成为问题。 – V4Vendetta 2011-05-13 05:03:08
这取决于你所说的“验证”是什么。 Winforms具有在您离开控件时触发的Validating
和Validate
事件。你可以点击这些,然后验证你的文本框。但是,如果您想在输入时进行验证,则您希望使用Key_Press
事件来检查每次按下某个键以确保该框中的信息仍然有效。
这里是一个验证SO文章:
在有这些问题的答案提供一些不同的想法取决于你想要做什么。无论你决定什么,一定要确保你正确地检查领域。例如,如果您使用Key_Press
,请不要在允许空格之前统计字段中有多少个字符。如果你这样做了,用户可以将光标移动到开始处和按下的空间。这会搞乱你的系统。即使您正在使用Key_Press
事件,请务必在验证时检查整个字段。您可以像使用RegEx一样复杂的模式来执行此操作。
如果您不希望允许除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;
}
}
参考http://*.com/questions/2703461/regular-expression-alphanumerics-with-space http://*.com/questions/924287/regular -expressio n-for-alphnumeric-and-space。你必须修改正则表达式来满足你的要求。 – 2011-05-13 04:49:41
你的意思是说用户不能从'space'开始,但可以使用后者吗? – V4Vendetta 2011-05-13 04:54:19
嗨,对不起,我没有看到你的问题,我认为它不是一个好的方法来回答两次在*。所以我想建议你在http:// *之前几分钟回答下面的链接。com/questions/5987924/validating-textbox-in-windows-form-applications/5988074#5988074 – SharpUrBrain 2011-05-13 06:53:35