如何在不使用C#.net的Windows窗体应用程序中允许空格的情况下验证文本框 在我的项目.i可以验证文本框,不允许空格.... 在这两件事............. 1.仅允许空格 2.输入一个或两个字符后,文本框接受空格...........
答案 0 :(得分:1)
您可以通过处理TextBox
事件来限制用户在KeyPress
中输入空格
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = (e.KeyChar == (char)Keys.Space);
}
修改强>
如果在输入一两个字符后允许空格,那么您应该使用
textbox1.Text.TrimStart()
答案 1 :(得分:0)
这取决于“验证”的含义。 Winforms具有Validating
和Validate
事件,当您离开控件时会触发这些事件。您可以点按这些并验证您的文本框。但是,如果要在键入时进行验证,则每次按下键时都要使用Key_Press
事件进行检查,以确保框中的信息仍然有效。
以下是有关验证的SO文章:
根据你想做的事情,那里的答案给出了一些不同的想法。无论您决定什么,一定要确保正确检查现场。例如,如果您使用Key_Press
,则不要只计算允许空格之前字段中的字符数。如果您这样做,用户可能已将光标移动到开头和按下的空间。这会弄乱你的系统。即使您使用Key_Press
事件,也请务必在验证时检查整个字段。使用RegEx作为您想要执行此操作的复杂模式。
答案 2 :(得分:0)
如果您不想允许除TextBox中的字母数字字符之外的任何其他字符输入,则可以在TextBox的KeyPress事件上执行此操作。
在KeyPress事件中,您需要检查输入的字符是字母还是数字。
Char.IsLetterOrDigit(e.KeyChar)
如果是,则通过设置
允许按键“e.Handled = false”
否则,请不要通过设置“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;
}
}