VB.NET多文本框验证

时间:2010-12-01 15:49:21

标签: vb.net winforms validation

有人可以通过验证带有多个文本框的表单来显示一些指导(我不是要求做我的作业)吗?用户将被告知有问题的领域。

表格的来源:

Private Sub btnNewUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewUser.Click
  'If txtEmail.Text.Contains(" "c) Or Not(InStr(txtEmail.Text, "@")) Then
  'txtEmail.Clear()
  'ElseIf txtPassword.Text.Contains(" "c) Then
  'txtPassword.Clear()
  'ElseIf txtPIN.Text ''#uh
    aryUserRecord(0) = txtEmail.Text
    aryUserRecord(1) = txtPassword.Text
    aryUserRecord(2) = txtPIN.Text ''#consists of a letter then two numbers then another                     addNewUser = Join(aryUserData, ",")
   ''#more source
    Me.DialogResult = DialogResult.OK
End Sub

2 个答案:

答案 0 :(得分:5)

您可以使用ErrorProvider标记有问题的字段。您将要与每个TextBox的验证事件挂钩。像这样:

Private Sub TextBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
        If TextBox1.Text = "" Then
            ErrorProvider1.SetError(TextBox1, "Text cannot be empty")
            e.Cancel = True
        End If
End Sub

然后,当Textbox确实进行验证时,您可以连接到Validated事件以清除ErrorProvider:

Private Sub TextBox1_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Validated
        ErrorProvider1.SetError(TextBox1, "")
End Sub

答案 1 :(得分:0)

尝试阅读RegularExpressionValidator。

<击>

您可以为每个文本框分配一个使用正则表达式来验证用户输入客户端,根据您对该问题的评论看起来是一个不错的选择。

使用winforms,您需要实施ValidatingValidated次事件

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.causesvalidation.aspx

在上面的链接中提供了一个电子邮件示例。这应该为您提供启动

的参考