afan
发表于 2021-10-28 18:18:47
hljkwan 发表于 2021-10-28 18:14
这是单选框,左右不能重复,但是上下可以重复
你再自己想想,为什么要左右重复。既禁止又启用?
hljkwan
发表于 2021-10-28 18:20:17
hljkwan
发表于 2021-10-28 18:24:16
afan 发表于 2021-10-28 18:18
你再自己想想,为什么要左右重复。既禁止又启用?
有些时候需要禁止,有些时候需要启用,毕竟做功能吗,要灵活
还有就是涉及到底部有全选,这个单选框是否能禁止全选或者解除全选
hljkwan
发表于 2021-10-28 18:25:47
afan 发表于 2021-10-28 18:18
你再自己想想,为什么要左右重复。既禁止又启用?
感谢感谢,我没看见代码,谢谢,能解决了~~~
afan
发表于 2021-10-28 18:32:26
hljkwan 发表于 2021-10-28 18:25
感谢感谢,我没看见代码,谢谢,能解决了~~~
代码都没看,回复倒是很积极…
afan
发表于 2021-10-28 18:34:32
hljkwan 发表于 2021-10-28 18:24
有些时候需要禁止,有些时候需要启用,毕竟做功能吗,要灵活
还有就是涉及到底部有全选,这个单选框是否 ...
如果是这么多内容,应该用 ListView 控件,简单实用得多。
hljkwan
发表于 2021-10-28 18:36:40
afan 发表于 2021-10-28 18:34
如果是这么多内容,应该用 ListView 控件,简单实用得多。
感谢,感谢!收到,下次一定看清楚内容再回复
xz00311
发表于 2021-10-28 18:43:52
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Administrator\Desktop\PCY_DIY_1.6\10.27\勾选测试\有点问题\论坛看效果\Form1.kxf
$Form1 = GUICreate("Form1", 615, 438, 306, 243)
$Checkbox1 = GUICtrlCreateCheckbox("禁止CMD", 144, 72, 120, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
$Checkbox2 = GUICtrlCreateCheckbox("解除CMD", 280, 72, 120, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
$Checkbox3 = GUICtrlCreateCheckbox("解除注册表", 280, 144, 130, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
$Checkbox4 = GUICtrlCreateCheckbox("禁止组策略", 144, 200, 130, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
$Checkbox5 = GUICtrlCreateCheckbox("解除组策略", 280, 200, 130, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
$Checkbox6 = GUICtrlCreateCheckbox("禁止注册表", 138, 142, 130, 30)
GUICtrlSetFont(-1, 16, 400, 0, "华文中宋")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
If GUICtrlRead($Checkbox1) = 1 Then
GUICtrlSetState($Checkbox2, $GUI_DISABLE)
GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
Else
GUICtrlSetState($Checkbox2, $GUI_ENABLE)
GUICtrlSetState($Checkbox2, $GUI_CHECKED)
EndIf
EndSwitch
WEnd
看看这个是不是你想要的
hljkwan
发表于 2021-10-28 18:46:00
xz00311 发表于 2021-10-28 18:43
看看这个是不是你想要的
果然很厉害,确实这也是一种复选框的解决方式,学习了,万分感谢
hljkwan
发表于 2021-10-28 18:48:36
xz00311 发表于 2021-10-28 18:43
看看这个是不是你想要的
您也可以看看11楼A哥的处理方式,也是非常好的一种方式
862228699
发表于 2021-10-29 19:10:49
本帖最后由 862228699 于 2021-10-30 10:06 编辑
楼主是想要这样的方式吗?
Opt("GUIOnEventMode", 1)
Global $Form1 = GUICreate("Form1", 200, 400)
GUISetOnEvent(-3, "CLOSE")
Global $chekBox, $title = ['禁止CMD', '禁止注册表', '禁止组策略', '禁止任务管理器', '禁止改密码', '禁止F8', '禁止文件夹', '禁止INTERNET', '禁止注销', '禁止本地', '禁止显示']
For $i = 0 To 10
$chekBox[$i] = GUICtrlCreateCheckbox($title[$i], 10, 10 + $i * 30, 185, 25)
Next
GUICtrlCreateButton("查看已选择", 70, 350)
GUICtrlSetOnEvent(-1, "Look")
GUISetState(@SW_SHOW)
While Sleep(10)
WEnd
Func Look()
Local $Text = ''
For $i = 0 To 10
If GUICtrlRead($chekBox[$i]) = 1 Then $Text &= $title[$i] & @CRLF
Next
MsgBox(0, '你已经选择了', $Text, 0, $Form1)
EndFunc ;==>Look
Func CLOSE()
Exit
EndFunc ;==>CLOSE
afan
发表于 2021-10-29 22:00:10
862228699 发表于 2021-10-29 19:10
楼主是想要这样的方式吗?
貌似用力过度~ :face (24):
既然要循环所有,不如直接在最后循环一次 GUICtrlRead 就行了,还能取得需解禁的…
hljkwan
发表于 2021-10-29 22:32:14
862228699 发表于 2021-10-29 19:10
楼主是想要这样的方式吗?
感谢,已经用A哥的方式解决了
hljkwan
发表于 2021-10-29 22:32:50
afan 发表于 2021-10-29 22:00
貌似用力过度~
既然要循环所有,不如直接在最后循环一次 GUICtrlRead 就行了,还能取得需解 ...
:face (17):哈哈
862228699
发表于 2021-10-30 10:07:30
afan 发表于 2021-10-29 22:00
貌似用力过度~
既然要循环所有,不如直接在最后循环一次 GUICtrlRead 就行了,还能取得需解 ...
好像是有点多此一举了,改了改了。:face (25):