找回密码
 加入
搜索
楼主: 水木子

[AU3基础] 请教:N个复选框(Checkbox),如何“全选\反选”。[已解决]

  [复制链接]
发表于 2009-7-22 14:11:51 | 显示全部楼层
本帖最后由 chenjt819 于 2009-7-22 14:13 编辑
#include
#include
#include
#include
#include

$Form1 = GUICreate("全选\反选", 261, 251, 340, 162)
$Checkbox1 = GUICtrlCreateCheckbox("1", 50, 50, 25, 17)
$Checkbox2 = GUICtrlCreateCheckbo ...
lynfr8 发表于 2009-7-16 13:32


为什么是 For $i=3 To 11  而不是 For $i=1 To 9
不是 有 Checkbox1 到9  9个复选框吗?
发表于 2009-7-22 18:55:00 | 显示全部楼层
呵呵
貌似一个bug
 楼主| 发表于 2009-7-22 20:20:57 | 显示全部楼层
呵呵
貌似一个bug
lynfr8 发表于 2009-7-22 18:55

一直很想问这个问题的,怕前辈又说我,所以没问,没想到有人帮忙问了。
在后来的编写中也遇到几次类似的问题。
发表于 2009-7-22 23:40:14 | 显示全部楼层
这不是BUG,GUICtrlCreate*创建的控件ID都是从3开始累加的,$checkbox & $i 这一句咋看之下没明白是什么意思。仔细看看,可以直接用$i代替,或者用Eval("Checkbox" & $i),这种情况下,$i的起始量必须要设为1,终止量为9。再或者在创建的时候就把控件ID放在数组$aCheckbox[9]中。

评分

参与人数 1金钱 +10 贡献 +8 收起 理由
lynfr8 + 10 + 8 学习了

查看全部评分

发表于 2009-7-23 00:00:47 | 显示全部楼层
19# pusofalse

很细节的东西,学习了
发表于 2009-7-23 00:20:48 | 显示全部楼层
学习了....
发表于 2009-7-23 13:06:56 | 显示全部楼层
学习加留名
发表于 2010-6-14 14:36:50 | 显示全部楼层
又学习了!嘿嘿!
发表于 2010-6-18 18:46:34 | 显示全部楼层
好好学习,最近迷上AU3了
发表于 2010-6-19 09:38:10 | 显示全部楼层
前面几位达人的代码好像有问题呢,如果自己手动选择的话就会出现问题,比如手动全选,再点一下按钮不会产生取消选择
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("全部选择与取消选择", 261, 251, 340, 162)
$Checkbox1 = GUICtrlCreateCheckbox("1", 50, 50, 25, 17)
$Checkbox2 = GUICtrlCreateCheckbox("2", 120, 50, 25, 17)
$Checkbox3 = GUICtrlCreateCheckbox("3", 190, 50, 25, 17)
$Checkbox4 = GUICtrlCreateCheckbox("4", 50, 100, 25, 17)
$Checkbox5 = GUICtrlCreateCheckbox("5", 120, 100, 25, 17)
$Checkbox6 = GUICtrlCreateCheckbox("6", 190, 100, 25, 17)
$Checkbox7 = GUICtrlCreateCheckbox("7", 50, 150, 25, 17)
$Checkbox8 = GUICtrlCreateCheckbox("8", 120, 150, 25, 17)
$Checkbox9 = GUICtrlCreateCheckbox("9", 190, 150, 25, 17)
$Group1 = GUICtrlCreateGroup("10", 24, 24, 209, 169)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("全部选择", 90, 210, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Checkbox1
                                        Checkbox()
                Case $Checkbox2
                                        Checkbox()
                Case $Checkbox3
                                        Checkbox()
                Case $Checkbox4
                                        Checkbox()
                Case $Checkbox5
                                        Checkbox()
                Case $Checkbox6
                                        Checkbox()
                Case $Checkbox7
                                        Checkbox()
                Case $Checkbox8
                                        Checkbox()
                Case $Checkbox9
                                        Checkbox()
                Case $Button1
                                        For $i=1 To 9
                                                If GUICtrlRead($Button1)="取消选择" Then
                                                        GUICtrlSetState (Eval("Checkbox"&$i),$GUI_UNCHECKED)
                                                Else
                                                        GUICtrlSetState (Eval("Checkbox"&$i),$GUI_CHECKED)
                                                EndIf
                                        Next
                                        If GUICtrlRead($Button1)="取消选择" Then
                                                GUICtrlSetData($Button1,"全部选择")
                                        Else
                                                GUICtrlSetData($Button1,"取消选择")
                                        EndIf
        EndSwitch
WEnd
Func Checkbox()
        For $i=1 To 9
                If GUICtrlRead(Eval("Checkbox"&$i))=4 Then ExitLoop
        Next
        If $i=10 Then
                GUICtrlSetData($Button1,"取消选择")
        Else
                GUICtrlSetData($Button1,"全部选择")
        EndIf
EndFunc
        

评分

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

查看全部评分

发表于 2010-6-19 09:39:02 | 显示全部楼层
如果用事件模式代码会减少很多,我就不弄啦,呵呵
发表于 2011-3-9 06:29:25 | 显示全部楼层
嗯。需要的。。
发表于 2011-7-8 01:28:05 | 显示全部楼层
留字 等带来学习
发表于 2012-2-10 20:37:29 | 显示全部楼层
回复 25# jhun
向你们学习致敬
发表于 2014-7-12 09:35:33 | 显示全部楼层
很有用,谢谢分享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 16:47 , Processed in 0.068216 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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