在 Windows 窗体应用程序中验证文本框
本文关键字:验证 文本 应用程序 Windows 窗体 | 更新日期: 2023-09-27 17:56:13
如何使用 C#.net 验证文本框,而不允许在 Windows 窗体应用程序中使用空格在我的项目中,我可以验证文本框,不允许空格....在这两件事上...1.不允许仅空格2.输入一两个字符后文本框接受空格...
您可以通过处理 KeyPress
事件来限制用户在TextBox
中输入空间
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = (e.KeyChar == (char)Keys.Space);
}
编辑
如果在输入一两个字符后允许空格,那么您应该使用
textbox1.Text.TrimStart()
这取决于你所说的"验证"是什么意思。 Winforms 具有离开控件时触发的Validating
和Validate
事件。 您可以点击这些并验证您的文本框。 但是,如果要在键入时进行验证,则需要使用 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;
}
}