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):
页: 1 [2] 3
查看完整版本: 【已解决】选了(1)禁止就无法选择(1)解除,怎么搞