找回密码
 加入
搜索
查看: 2415|回复: 7

忘记问的问题。

[复制链接]
发表于 2008-10-6 00:02:11 | 显示全部楼层 |阅读模式
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 139, 284, 193, 125)
$Checkbox1 = GUICtrlCreateCheckbox("注册1", 32, 24, 105, 33)
$Checkbox2 = GUICtrlCreateCheckbox("注册2", 32, 64, 105, 25)
$Checkbox3 = GUICtrlCreateCheckbox("注册3", 32, 104, 73, 17)
$Checkbox4 = GUICtrlCreateCheckbox("注册4", 32, 144, 89, 17)
$Button1 = GUICtrlCreateButton("全选", 16, 192, 97, 25, 0)
$Button2 = GUICtrlCreateButton("全不选", 16, 220, 97, 25, 0)
$Button3 = GUICtrlCreateButton("确定", 16, 249, 97, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            For $i=1 to 4
                $T="Checkbox"&$i
                GUICtrlSetState(Eval($T),$GUI_CHECKED)
            Next
        Case $Button2   
            For $i=1 to 4
                $T="Checkbox"&$i
                GUICtrlSetState(Eval($T),$GUI_UNCHECKED)
            Next
                Case $Button3
                        If $nMsg = $Button3 Then
                        GUISetState (@SW_HIDE )
            If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then MsgBox(64,"","你按下了CHECKBOX1")
            If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then MsgBox(64,"","你按下了CHECKBOX2")
                        If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then MsgBox(0,"","你按下了CHKCKBOX3")
                        If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then MsgBox(0,"","你按下了CHKCKBOX4")
                        ExitLoop
                        EndIf
    EndSwitch
WEnd
有没有更简单的方法写$Button3后的代码?

[ 本帖最后由 xg911335 于 2008-10-8 20:52 编辑 ]
发表于 2008-10-6 00:32:26 | 显示全部楼层
Case $Button3
                        If $nMsg = $Button3 Then
                        GUISetState (@SW_HIDE )
                        For $i = $Checkbox1 to $Checkbox4
                            If GUICtrlRead($i) = $GUI_CHECKED Then MsgBox(64,"","你按下了[" & GUICtrlRead($i,1) & "]")
                        Next
                        ExitLoop
                        EndIf
发表于 2008-10-6 00:37:39 | 显示全部楼层
原帖由 aa147147 于 2008-10-6 00:32 发表
Case $Button3
                        If $nMsg = $Button3 Then
                        GUISetState (@SW_HIDE )
                        For $i = $Checkbox1 to $Checkbox4
                            ...

$checkbox1到$checkbox4,这样行吗?这两个谁大谁小姑且不论,步长是多少?建个数组倒是可以,四个复选框不算多,多了就没法用了

[ 本帖最后由 netegg 于 2008-10-6 00:39 编辑 ]
发表于 2008-10-6 09:51:36 | 显示全部楼层
就算是多了,如果,他们是在一起下去的,1-100,都可以这样子来写
发表于 2008-10-6 10:11:06 | 显示全部楼层
使用事件模式,注册checkbox1-4至同一事件
发表于 2008-10-6 11:13:08 | 显示全部楼层
经思考得:(些办法同于全选和全否!此例仅为参考显示,如果要用于不同事件,还是用看起来麻烦的句式!)

Case $Button3
                        If $nMsg = $Button3 Then
                                GUISetState(@SW_HIDE)
                                For $i = 1 To 4
                                        If GUICtrlRead(Eval("Checkbox" & $i)) = $GUI_CHECKED Then MsgBox(64, "", "你按下了[Checkbox" & $i & "]")
                                Next
                                ExitLoop
                        EndIf


[ 本帖最后由 liongodmien 于 2008-10-6 11:37 编辑 ]
 楼主| 发表于 2008-10-6 20:38:08 | 显示全部楼层
如果事件不同了?或者复选框有10多个有怎么办?
 楼主| 发表于 2008-10-7 10:56:27 | 显示全部楼层
还差多后一点就完了。顶上去。

[ 本帖最后由 xg911335 于 2008-10-7 17:36 编辑 ]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 20:17 , Processed in 0.079451 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表