急!!!向大家求个思路!!!

aclan 2009-04-29 11:05:13
窗体上有7个控件:6个textbox,2个datetimepicker,2个combobox.其中1个combobox绑定图书类别.另一个是通过添加item项值添加项.现在对6个textbox,和1个combobox进行vaildating的验证,即随着焦点由当前的控件移到另一个控件上时发生vaildating时间.问题是怎样使所有的控件的 vaildating事件都发生后且errorprovider控件对每个具有验证事件的表达式没报错的情况下,才能通过点"添加"按钮,将信息添加到数据库。

尝试一:我开始设计时发现,对多个控件添加了验证事件,由于输入时对控件的操作是无序的,所以当最后操作的控件是带有验证事件的话,只有通过点击其他已经输入合法的控件或点击"添加"按钮,来激发验证事件.考虑到通常情况下使用者会点击"添加按钮",所以问题来了:点击按钮后,当最后操作的控件输入不合法时,会在控件旁先显示提示信息,紧接着执行按钮的事件,弹出:"添加操作成功"的对话框,并且将输入不合法的信息一起插入到数据库中.这个问题可怎么解决啊?!请各位高手给个思路!

尝试二:我是面向过程的设计思想。也考虑过用全局变量,初始声明的f=0,对每个验证事件,在输入正确的情况下执行f加1,最后f=6时“添加”按钮可用,但是若要连续插入下一条信息时,f值此时大于6。怎样使f值清零?

想了很久仍然没找到解决方法!有些着急!
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aclan 2009-04-30
  • 打赏
  • 举报
回复
回复1楼:
全局变量,不能在Click事件中重新让其清零,已经试过了!!
wood87654321 2009-04-30
  • 打赏
  • 举报
回复
看得头晕
你的尝试2很简单,只要在“添加”按钮的Click事件函数的最后将f归0不就行了?
hc8112_boy 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 aclan 的回复:]
回复1楼:
全局变量,不能在Click事件中重新让其清零,已经试过了!!
[/Quote]

怎么会? 好好检查你的代码吧!
kingsunmax 2009-04-30
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If CheckAll() = True Then
'执行保存语句
End If
End Sub

Private Function CheckAll() As Boolean
If CheckObj(Me.TextBox1) = False Then
Return False
End If
If CheckObj(Me.TextBox2) = False Then
Return False
End If
If CheckObj(Me.TextBox3) = False Then
Return False
End If
.
.
.
.
.
.
.
.
End Function
'检查单个
Private Function CheckObj(ByVal setObj As Control) As Boolean
Select Case setObj.Name
Case Is = "TextBox1"
'放你的检查 错误返回假

MsgBox("错了错了")
Return False
Case Is = "TextBox2"
'.............
Case Is = "TextBox3"
'.............
End Select
Return True
End Function

Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Validated,TextBox2.Validated,.......
CheckObj(sender)
End Sub

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧