#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 http://www.autoitx.com/images/common/back.gif
为什么是 For $i=3 To 11而不是 For $i=1 To 9
不是 有 Checkbox1 到99个复选框吗? 呵呵
貌似一个bug 呵呵
貌似一个bug
lynfr8 发表于 2009-7-22 18:55 http://www.autoitx.com/images/common/back.gif
一直很想问这个问题的,怕前辈又说我,所以没问,没想到有人帮忙问了。
在后来的编写中也遇到几次类似的问题。 这不是BUG,GUICtrlCreate*创建的控件ID都是从3开始累加的,$checkbox & $i 这一句咋看之下没明白是什么意思。仔细看看,可以直接用$i代替,或者用Eval("Checkbox" & $i),这种情况下,$i的起始量必须要设为1,终止量为9。再或者在创建的时候就把控件ID放在数组$aCheckbox中。 19# pusofalse
很细节的东西,学习了 学习了.... 学习加留名 又学习了!嘿嘿! 好好学习,最近迷上AU3了 前面几位达人的代码好像有问题呢,如果自己手动选择的话就会出现问题,比如手动全选,再点一下按钮不会产生取消选择#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
如果用事件模式代码会减少很多,我就不弄啦,呵呵 嗯。需要的。。 留字 等带来学习 回复 25# jhun
向你们学习致敬 很有用,谢谢分享!
页:
1
[2]