VB复选框问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:41:20
Private Sub Check1_Click()
If 1 = 1 Then
Check1.Value = 0
MsgBox "请在上面的复选框里勾选你处理的数据类型": Exit Sub
End If
End Sub
请问msgbox这条代码为什么要被执行两次?按单步执行时,程序第一次运行到了EXIT SUB这条语句后,接下来直接跳到MSGBOX这条语句再执行一次,然后再执行EXIT SUB这条语句,最后才能正常退出。
是这个控件的一个BUG吧。就算Check1.Value = 0
这样的语句相当于发生一次CLICK事件,那也应该是从if语句开始执行吧,可是如此一来就会产生死循环?
还不如把click事件改成change事件。

Check1.Value = 0这个句子改变了复选框的值,可能会导致复选框发生一次click事件。和鼠标再点了一次是一样的效果。

补充:
由于第一次把值改为0了,所以后面Check1.Value = 0 不会改变值,所以不会再次引发的click事件,也就不会死循环。

改成
Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If 1 = 1 Then
Check1.Value = 0
MsgBox "请在上面的复选框里勾选你处理的数据类型": Exit Sub
End If
End Sub
if 1=1?是什么意思

Private Sub Check1_Click()
If Check1.Value = 1 Then
MsgBox "请在上面的复选框里勾选你处理的数据类型"
Check1.Value = 0
Exit Sub
End If
End Sub

呃。_____

当你点击了一下复选框时,就开始执行1=1这句。这是肯定成立的哈,所以复选框就不能选了,然后执行弹出对话框,跳出过程咯。

就没咯吧,这个题好怪哦。