找回密码
 加入
搜索
查看: 3617|回复: 8

[GUI管理] 如何点一下按钮,然后让CheckBox为选中状态?

  [复制链接]
发表于 2011-4-21 21:22:42 | 显示全部楼层 |阅读模式
我的意思是:我点一下“全选”按钮,然后所有的CheckBox全部处于选中状态,当然,单个点击CheckBox后要执行其下的代码,如表示按下的变量$Down=1,如何实现,本人初学,找不到资料,希望给予解答,谢谢!
发表于 2011-4-21 22:34:07 | 显示全部楼层
本帖最后由 netegg 于 2011-4-21 22:36 编辑

guictrlsetonevent($check, 'doit' )
func doit()
if bitor(guictrlread($check), $gui_uncecked) then
guictrlsetstate($check, $gui_checked)
msgbox(0,0,0)
else
guictrlsetstate($check, $gui_unchecked)
endif
endfunc
发表于 2011-4-21 22:53:44 | 显示全部楼层
学习中。。。。。。
发表于 2011-4-22 09:19:47 | 显示全部楼层
蛋蛋的方法就OK了!用循环也行!
 楼主| 发表于 2011-4-22 12:40:21 | 显示全部楼层
我试试,先谢谢提供帮助
发表于 2011-4-22 13:19:39 | 显示全部楼层
...找不到资料,按f1
发表于 2011-4-22 13:52:56 | 显示全部楼层
不知道这样行得通不?
guictrlsetonevent($check, 'doit' )
Global $state[2]=[1,4],$val=0
func doit()
        guictrlsetstate($check, $state[$val])
        $val=Not $val
endfunc
发表于 2011-4-23 10:36:34 | 显示全部楼层
一个例子
#include <GUIConstantsEx.au3>

GUICreate(" GUI 复选框") ; 创建居中显示的对话框窗口

$checkCN1 = GUICtrlCreateCheckbox("复选框 1", 10, 10)
$checkCN2 = GUICtrlCreateCheckbox("复选框 2", 10, 30)
$checkCN3 = GUICtrlCreateCheckbox("复选框 3", 10, 50)
$checkCN4 = GUICtrlCreateCheckbox("复选框 4", 10, 70)
$checkCN5 = GUICtrlCreateCheckbox("复选框 5", 10, 90)
$checkCN6 = GUICtrlCreateCheckbox("复选框 6", 10, 110)
$checkCN7 = GUICtrlCreateCheckbox("复选框 7", 10, 130)
$checkCN8 = GUICtrlCreateCheckbox("复选框 8", 10, 150)
$checkCN9 = GUICtrlCreateCheckbox("复选框 9", 10, 170)
$checkCN10 = GUICtrlCreateCheckbox("复选框 10", 10, 190)
$btn = GUICtrlCreateButton("全选", 10, 220)
$btn2 = GUICtrlCreateButton("全不选", 10, 250)
GUISetState()

While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = $checkCN1
                        Check($checkCN1)
                Case $msg = $checkCN2
                        Check($checkCN2)
                Case $msg = $checkCN3
                        Check($checkCN3)
                Case $msg = $btn
                        Checkbox()
                Case $msg = $btn2
                        UnCheckbox()
                Case $msg = $GUI_EVENT_CLOSE
                        Exit
        EndSelect
WEnd

Func Check($check)
        If GUICtrlRead($check) = $GUI_CHECKED Then _
                        MsgBox(0, "", "您选择了" & GUICtrlRead($check, 1))
EndFunc   ;==>Check

Func Checkbox()
        For $i = 1 + 2 To 10 + 2
                $s = Eval("checkCN") & Eval("i")
                GUICtrlSetState($s, $GUI_CHECKED)
        Next
EndFunc   ;==>Checkbox

Func UnCheckbox()
        For $i = 1 + 2 To 10 + 2
                $s = Eval("checkCN") & Eval("i")
                GUICtrlSetState($s, $GUI_UNCHECKED)
        Next
EndFunc   ;==>UnCheckbox
发表于 2011-4-23 20:57:05 | 显示全部楼层
本帖最后由 netegg 于 2011-4-23 20:59 编辑

回复 7# 3mile
逻辑上应该没问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 01:12 , Processed in 0.076436 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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