smooth 发表于 2010-10-31 10:30:34

[已解决]各位老师,为什么点击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

xianhou 发表于 2010-10-31 11:12:28

38行                              Dim $sum=0,$s = 0


给 $sum 也赋值。

smooth 发表于 2010-10-31 11:43:50

回复 2# xianhou
按照你的说法修改了相应代码,结果一样的。

yhxhappy 发表于 2010-10-31 12:50:36

楼主的代码 缩进也太乱了吧,我看得一头雾水的。
如果直接点Button3不弹出对话应该不可能啊,起码会弹出56行的对话框。
你可以在44行后面加个MsgBox(0, "", $sum)看看$sum的值是多少。
你贴的代码不全我没法试

smooth 发表于 2010-10-31 13:33:51

回复 4# yhxhappy

我检测过$sum的输出值,是正常的。

yhxhappy 发表于 2010-10-31 14:50:51

$Msg = MsgBox(1, "温馨提示", "您未执行任何操作,确定退出程序吗?") = 1
这样的格式有问题,去掉“ $Msg = ”呢

C.L 发表于 2010-10-31 17:42:01

同意6#所说,楼主的代码里,语法有问题。

5i5wei 发表于 2010-11-4 21:50:01

继续的支持你顶你

smooth 发表于 2010-11-9 08:26:27

解决了,是代码的逻辑出了点问题。
页: [1]
查看完整版本: [已解决]各位老师,为什么点击Button3,会依赖于Button2呢?