代码控制复选框
vb吧
全部回复
仅看楼主
level 9
klimaa 楼主
vb里用代码设置复选框的状态,会再产生一个click事件。如果这段代码本身就在click事件里,就会出现点一下鼠标,重复运行click事件代码的情况。怎么避免?@初音✨七奈 @初音✨七奈
2022年10月24日 00点10分 1
level 13
复选框的状态发生改变时会触发click,比如:Value初始是0,然后为1,就会有一次Click,在Value没有为0的情况下就不会再触发
除非你在click事件反复改变状态,这种情况是很少会出现的,估计你的代码本身或思路就有问题
2022年10月24日 01点10分 2
就和你的等级一样,递归爆栈
2022年10月24日 01点10分
是我想把复选框当做类似单选框那样用,因为有时候还需要不选,而单选框做不到不选。 然后,在复选框的click事件里,取消另外一个复选框的选择状态,就会出现这样的问题。
2022年10月24日 02点10分
@隨風🍁缒夢 其实我递归代码都不熟,所以很少用递归。 正如大佬所写,有些情况不会再触发,但是触发3次的情况还是有的。像上面的情况,如果不在click事件里改变复选框的状态,一般会怎么做?
2022年10月24日 02点10分
level 9
klimaa 楼主
我先用mouseup + keyup处理吧。
2022年10月24日 02点10分 3
level 13
//可以尝试用以下代码来选择是否执行复选框的点击事件
Private Sub Check1_Click()
If Check1.Value = 1 And (ActiveControl Is Check1) Then
MsgBox "我被勾选了"
End If
End Sub
2022年10月24日 03点10分 4
假如在一个按钮里设置 check1.value=1 就不会执行复选框的点击事件
2022年10月24日 03点10分
太棒了,就是我想要的功能,没见过,没用过,学习了。
2022年10月24日 03点10分
我是在复选框里设置复选框,不过都差不多。
2022年10月24日 03点10分
level 11
'像这样
Option Explicit
Dim b As Boolean
Private Sub Check1_Click()
If b Then Exit Sub
If Check2.Value = 1 Then
b = True
Check2.Value = 0
b = False
End If
End Sub
Private Sub Check2_Click()
If b Then Exit Sub
If Check1.Value = 1 Then
b = True
Check1.Value = 0
b = False
End If
End Sub
2022年10月24日 15点10分 5
做一个识别标识,容易实现,感谢!
2022年10月25日 00点10分
1