验证Windows窗体应用程序中的文本框

时间:2011-05-13 04:38:19

标签: c# validation textbox spaces

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

3 个答案:

答案 0 :(得分:1)

您可以通过处理TextBox事件来限制用户在KeyPress中输入空格

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

修改

如果在输入一两个字符后允许空格,那么您应该使用

textbox1.Text.TrimStart()

答案 1 :(得分:0)

这取决于“验证”的含义。 Winforms具有ValidatingValidate事件,当您离开控件时会触发这些事件。您可以点按这些并验证您的文本框。但是,如果要在键入时进行验证,则每次按下键时都要使用Key_Press事件进行检查,以确保框中的信息仍然有效。

以下是有关验证的SO文章:

WinForm UI Validation

根据你想做的事情,那里的答案给出了一些不同的想法。无论您决定什么,一定要确保正确检查现场。例如,如果您使用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;
        }
    }