0

我正在编写以下代码以验证必填字段帐号。通知。当错误发生时,用户的要求是重新关注字段:

If txtAccountNo = "" Then

    MessageBox.Show("Account no filed can't be left empty")
    txtAccountNo.SetFocus
    Exit Sub

End If

它工作正常。但是假设用户不想填写表格并退出应用程序。消息框一直出现,直到用户输入帐号。

我怎样才能避免这种情况?请帮忙。

4

2 回答 2

0

设置一个标志以指示用户已看到消息框。检查标志以防止将来出现任何消​​息框。确保在将焦点设置回文本框之前设置了标志,例如

dim bMsgBox as boolean=false

If txtAccountNo = "" and bMsgBox = false Then

    MessageBox.Show("Account no filed can't be left empty")
    bMsgBox=true
    txtAccountNo.SetFocus
    Exit Sub

End If
于 2012-05-09T06:48:08.800 回答
0

您可以将所有验证规则放在一个函数/过程/子程序中(我不熟悉 VB,主要是 C++/C# 用户)。然后只有在用户提交填写的数据时才调用此函数,并将焦点设置为未填写强制数据或输入无效数据的第一个控件。

假设您有一个需要填写 3 个控件的表单:

  • 日期控制不是强制性的 - dteDate
  • 必须的文本框 - txtAccoutInfo
  • 文本框必填 - txtAddress

和 2 个按钮:

  • 按钮保存和按钮取消。

当按下“保存”按钮时,您首先调用函数/过程来验证用户输入。如果输入的日期在 dteDate 中无效,则设置焦点并返回/退出函数;如果在 txtAccountInfo 中没有输入文本,则设置焦点并返回/退出函数;如果在 txtAddress 中没有输入文本,则将焦点放在它上面并返回/退出。

当按下“取消”时,您不会调用此函数,而只是退出。

于 2012-05-09T06:49:06.367 回答