[已解决]各位老师,为什么点击Button3,会依赖于Button2呢?
本帖最后由 smooth 于 2010-11-9 08:26 编辑Button3是退出,于Button2是执行。如果直接点击于Button3,不弹出MsgBox的内容直接退出程序,
如果点击Button3之前点击一下Button2,则Button3对应的MsgBox能弹出来,尽管有缺陷。
各位老师,为什么点击Button3,会依赖于Button2呢?他们是位于不同的case之下的呀。谢谢。While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If MsgBox(1, "温馨提示", "退出程序并访问鼎盛中国网站吗?") = 1 Then
shellexecute("Http://hi.baidu.com/cnace")
_UnLoadSkin($hSkinDll)
Exit
EndIf
Case $Button1
_CheckboxOpt($Checkbox, $Button1, 2)
Case $Button2
Dim $s = 0
For $c = 1 To 20
If GUICtrlRead($Checkbox[$c]) = $GUI_CHECKED Then
$s = 1
ExitLoop
EndIf
Next
If $s = 0 Then
$Msg = MsgBox(0, "温馨提示", "您未选择任何项目,请选择要执行的项目后再操作!")
Else
_main()
For $i=1 To 20
GUICtrlSetState($Checkbox[$i],$GUI_UNCHECKED)
; GUICtrlSetState($Checkbox[$i],$GUI_DISABLE)
Next
If MsgBox(1,"温馨提示", "系统清理完成,要退出程序并访问鼎盛中国网站吗?") = 1 Then
shellexecute("Http://hi.baidu.com/cnace")
_UnLoadSkin($hSkinDll)
EXIT
EndIf
EndIf
Case $Button3
Dim $sum,$s = 0
For $c = 1 To 20
If GUICtrlRead($Checkbox[$c]) = $GUI_CHECKED Then
$s = 1
$Sum = $Sum + $s
EndIf
Next
If $sum = 0 Then
If $Msg = MsgBox(1, "温馨提示", "您未执行任何操作,确定退出程序吗?") = 1 Then
_UnLoadSkin($hSkinDll)
Exit
EndIf
ElseIf $Sum = 20 Then
If $Msg = MsgBox(1, "温馨提示", "您已选择所有项目但未执行,确定退出程序吗?") = 1 Then
_UnLoadSkin($hSkinDll)
Exit
EndIf
Else
If MsgBox(1, "温馨提示", "您已选择一些项目但未执行,确定退出程序吗?") = 1 Then
_UnLoadSkin($hSkinDll)
Exit
EndIf
EndIf
EndSwitch
WEnd 38行 Dim $sum=0,$s = 0
给 $sum 也赋值。 回复 2# xianhou
按照你的说法修改了相应代码,结果一样的。 楼主的代码 缩进也太乱了吧,我看得一头雾水的。
如果直接点Button3不弹出对话应该不可能啊,起码会弹出56行的对话框。
你可以在44行后面加个MsgBox(0, "", $sum)看看$sum的值是多少。
你贴的代码不全我没法试 回复 4# yhxhappy
我检测过$sum的输出值,是正常的。 $Msg = MsgBox(1, "温馨提示", "您未执行任何操作,确定退出程序吗?") = 1
这样的格式有问题,去掉“ $Msg = ”呢 同意6#所说,楼主的代码里,语法有问题。 继续的支持你顶你 解决了,是代码的逻辑出了点问题。
页:
[1]