动态错误提示

通常我们会在Validating事件中设置代码来验证输入数据,例如:

If e.Sender.Text.Length <> 6 Then
   
MessageBox.Show("邮编应该是六位数!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel =
True

End
If

这样用户离开邮政编码输入框之前,就会判断输入内容的长度,如果长度不等于6,将出现一个对话框提示用户,并禁止离开邮政编码输入框。

这种错误提示比较“粗暴”,我们可以换一个较为“平和”的提示方式,将Validating事件代码改为:

If e.Sender.Text.Length <> 6 Then
   
e.Sender.Error = "邮编应该是六位数!"
Else

    e.Sender.Error =
""

End
If

这样输入的邮政编码长度如果不等于6,将在输入框的后边显示一个红色的小图标,表明有输入错误,将鼠标移到这个图标上时,就会显示错误信息:

如果想在保存的时候统一验证,可以将“保存”按钮的代码设置为:

Dim HasError As Boolean
Dim
r As Row = Tables("客户").Current
If
r.IsNull("邮编") OrElse r("邮编").Length <> 6 Then
    e.Form.Controls("TextBox1").Error = "邮政编码应该是六位数!"
   
HasError = True
Else

    e.Form.Controls("TextBox1").Error""

End
If
If
r.IsNull("分组") Then
    e.Form.Controls("TextBox2").Error = "
必须输入用户分组!"
    HasError = True

Else

    e.Form.Controls("TextBox2").Error = ""

End
If
If
HasError = False Then '如果没有输入错误,则保存
   r.Save()

End
If

同时将“取消”按钮的代码设置为:

Dim r As Row = Tables("客户").Current
r
.Reject() '撤销修改
e
.Form.ClearErrors() '清除所有控件的错误提示


本页地址:http://www.foxtable.com/webhelp/topics/2677.htm