我正在编写下面的代码,以验证compulsary字段帐户编号。在形式上。当出现错误时,用户的要求被设置为将焦点放在字段上:
If txtAccountNo = "" Then
MessageBox.Show("Account no filed can't be left empty")
txtAccountNo.SetFocus
Exit Sub
End If它正常工作了。但是假设用户不想填写表单并退出应用程序。消息框继续显示,直到用户输入帐号号。
我怎样才能避免这种情况?请帮帮忙。
发布于 2012-05-09 06:48:08
设置标志以指示用户已经看到消息框。检查标志,以防止任何未来的消息框。在将焦点设置回textbox之前,请确保设置了标志。
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-09 06:49:06
您可以将所有验证规则放在一个函数/过程/子规则中(我不熟悉VB,主要是C++ / C#用户)。然后,只在用户提交已填入的数据时调用此函数,并将焦点设置为第一个控件,输入强制数据未填充或无效数据。
假设您有一个有3个控件要填写的表单:
不强制的日期控件- txtAccoutInfo
和2个按钮:
当按下“保存”按钮时,首先调用函数/过程来验证用户输入。如果输入的日期在dteDate中无效,则设置focus并返回/退出函数;如果在txtAccountInfo中没有输入文本,则设置focus并返回/退出函数;如果txtAddress中没有输入文本,则将焦点设置为focus并返回/退出。
当按下'Cancel‘时,您不会调用这个函数,而只是退出。
https://stackoverflow.com/questions/10510787
复制相似问题