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

本文关键字:验证 文本 应用程序 Windows 窗体 | 更新日期: 2023-09-27 17:56:13

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

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

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

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

编辑

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

textbox1.Text.TrimStart()

这取决于你所说的"验证"是什么意思。 Winforms 具有离开控件时触发的ValidatingValidate事件。 您可以点击这些并验证您的文本框。 但是,如果要在键入时进行验证,则需要使用 Key_Press 事件在每次按下键时进行检查,以确保框中的信息仍然有效。

这是一篇关于验证的SO文章:

WinForm UI 验证

那里的答案给出了一些不同的想法,具体取决于您要做什么。 无论您决定什么,请务必确保正确检查该字段。 例如,如果使用 Key_Press ,则不要只计算字段中允许空格的字符数。 如果这样做,用户可以将光标移动到开头并按下空格键。 这会搞砸您的系统。 请确保在验证时检查整个字段,即使您使用的是 Key_Press 事件也是如此。 使用正则表达式与您想要的复杂模式一样。

如果不想允许除文本框中的字母数字字符之外的任何其他字符输入,则可以在文本框的 KeyPress 事件上执行此操作。

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

Char.IsLetterOrDigit(e.KeyChar)

如果是,则允许通过设置 按键

"e.Handle = false"

否则,不要通过设置"e.Handle = 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;
        }
    }