找回密码
 加入
搜索
查看: 6280|回复: 12

[AU3基础] (已解决)如何获取GUICtrlCreateCheckbox复选框选中数量

 火.. [复制链接]
发表于 2010-8-15 14:36:40 | 显示全部楼层 |阅读模式
本帖最后由 minghui 于 2010-8-15 15:44 编辑

如何获取GUICtrlCreateCheckbox复选框选中数量,比如有10个GUICtrlCreateCheckbox复选框,我随便勾选了几个,要如何获取它的勾选数量呢!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-8-15 15:23:53 | 显示全部楼层
GUICreate("Form1", 600, 450)
$Checkbox1 = GUICtrlCreateCheckbox("复选框 - 1", 40, 30, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("复选框 - 2", 160, 30, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("复选框 - 3", 280, 30, 97, 17)
$Checkbox4 = GUICtrlCreateCheckbox("复选框 - 4", 400, 30, 97, 17)
$Checkbox5 = GUICtrlCreateCheckbox("复选框 - 5", 40, 80, 97, 17)
$Checkbox6 = GUICtrlCreateCheckbox("复选框 - 6", 160, 80, 97, 17)
$Checkbox7 = GUICtrlCreateCheckbox("复选框 - 7", 280, 80, 97, 17)
$Checkbox8 = GUICtrlCreateCheckbox("复选框 - 8", 400, 80, 97, 17)
$Checkbox9 = GUICtrlCreateCheckbox("复选框 - 9", 40, 130, 97, 17)
$Checkbox10 = GUICtrlCreateCheckbox("复选框 - 10", 160, 130, 97, 17)
$Checkbox11 = GUICtrlCreateCheckbox("复选框 - 11", 280, 130, 97, 17)
$Checkbox12 = GUICtrlCreateCheckbox("复选框 - 12", 400, 130, 97, 17)

$b = GUICtrlCreateButton('检测数量', 130, 200, 150, 25)
GUISetState()
$sl = 0
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Checkbox1 To $Checkbox12
                        If GUICtrlRead($nMsg) = 1 Then $sl += 1
                        If GUICtrlRead($nMsg) = 4 Then $sl -= 1
                Case $b
                        MsgBox(0, 0, $sl)
        EndSwitch
WEnd
发表于 2010-8-15 15:00:47 | 显示全部楼层
For ...
If GUICtrlRead($ID) = 1 Then 已选中
next
发表于 2010-8-15 15:03:06 | 显示全部楼层
本帖最后由 水木子 于 2010-8-15 15:05 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("Form1", 600, 450)
$Checkbox1 = GUICtrlCreateCheckbox("复选框 - 1", 40, 30, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("复选框 - 2", 160, 30, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("复选框 - 3", 280, 30, 97, 17)
$Checkbox4 = GUICtrlCreateCheckbox("复选框 - 4", 400, 30, 97, 17)
$Checkbox5 = GUICtrlCreateCheckbox("复选框 - 5", 40, 80, 97, 17)
$Checkbox6 = GUICtrlCreateCheckbox("复选框 - 6", 160, 80, 97, 17)
$Checkbox7 = GUICtrlCreateCheckbox("复选框 - 7", 280, 80, 97, 17)
$Checkbox8 = GUICtrlCreateCheckbox("复选框 - 8", 400, 80, 97, 17)
$Checkbox9 = GUICtrlCreateCheckbox("复选框 - 9", 40, 130, 97, 17)
$Checkbox10 = GUICtrlCreateCheckbox("复选框 - 10", 160, 130, 97, 17)
$Checkbox11 = GUICtrlCreateCheckbox("复选框 - 11", 280, 130, 97, 17)
$Checkbox12 = GUICtrlCreateCheckbox("复选框 - 12", 400, 130, 97, 17)
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case - 3
                        Exit
                Case $Checkbox1 To $Checkbox12
                        $nText = ''
                        For $i = $Checkbox1 To $Checkbox12
                                If BitAND(GUICtrlRead($i), $GUI_CHECKED) Then $nText &= '复选框 - ' & $i - 2 & ' 被勾选' & @CRLF
                        Next
                        MsgBox(0, '被选项目', $nText)
        EndSwitch
WEnd

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-8-15 15:13:35 | 显示全部楼层
谢谢! 楼上两位前辈, 我的最终目的是点出确认按钮的时候,就输出勾选了几个. 比如勾选了一个就返回1 , 两个就返回2 勾选N个就返回N  这样
 楼主| 发表于 2010-8-15 15:44:01 | 显示全部楼层
谢谢afan版主,  我怎么就没想到+1呢! 继续努力学习
发表于 2010-8-15 20:08:09 | 显示全部楼层
回复 5# afan
Case $Checkbox1 To $Checkbox12
这句太精彩了,又学到一招。多谢
发表于 2010-8-18 10:56:07 | 显示全部楼层
又学到了!!
发表于 2014-11-18 14:30:11 | 显示全部楼层
感谢,感谢,努力学习中,非常感谢
发表于 2015-4-6 16:15:28 | 显示全部楼层
本帖最后由 dnvplj 于 2015-4-6 16:36 编辑

回复 5# afan

请教afan版主,如何让选中的数量在“$Label1 = GUICtrlCreateLabel("Label1", 48, 64, 36, 17)”上显示,而不是在MsgBox上显,并同时显被选中的名称,如“复选框 ”(您现在的列子),多谢了。
发表于 2015-4-6 16:53:07 | 显示全部楼层
回复 10# dnvplj
GUICreate("Form1", 600, 450)
$Checkbox1 = GUICtrlCreateCheckbox("复选框 - 1", 40, 30, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("复选框 - 2", 160, 30, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("复选框 - 3", 280, 30, 97, 17)
$Checkbox4 = GUICtrlCreateCheckbox("复选框 - 4", 400, 30, 97, 17)
$Checkbox5 = GUICtrlCreateCheckbox("复选框 - 5", 40, 80, 97, 17)
$Checkbox6 = GUICtrlCreateCheckbox("复选框 - 6", 160, 80, 97, 17)
$Checkbox7 = GUICtrlCreateCheckbox("复选框 - 7", 280, 80, 97, 17)
$Checkbox8 = GUICtrlCreateCheckbox("复选框 - 8", 400, 80, 97, 17)
$Checkbox9 = GUICtrlCreateCheckbox("复选框 - 9", 40, 130, 97, 17)
$Checkbox10 = GUICtrlCreateCheckbox("复选框 - 10", 160, 130, 97, 17)
$Checkbox11 = GUICtrlCreateCheckbox("复选框 - 11", 280, 130, 97, 17)
$Checkbox12 = GUICtrlCreateCheckbox("复选框 - 12", 400, 130, 97, 17)
$Label1 = GUICtrlCreateLabel('勾选信息', 40, 200, 150, 200)
GUICtrlSetColor(-1, 0x111188)
GUISetState()
Local $sl = 0, $Names = ''
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Checkbox1 To $Checkbox12
                        If GUICtrlRead($nMsg) = 1 Then
                                $sl += 1
                                $Names &= GUICtrlRead($nMsg, 1) & @LF
                        Else
                                $sl -= 1
                                $Names = StringReplace($Names, GUICtrlRead($nMsg, 1) & @LF, '')
                        EndIf
                        GUICtrlSetData($Label1, '已勾选 ' & $sl & ' 个:' & @LF & $Names)
        EndSwitch
WEnd
发表于 2015-4-6 18:25:39 | 显示全部楼层
回复 11# afan
您好afan版主,因我的水平有限,我认为这样提问就能解决问题,可是,在使用上出现了问题。我想达到的效果是下图中所示,给您添麻烦了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-4-7 06:50:21 | 显示全部楼层
学习了。。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-23 03:50 , Processed in 0.092744 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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