需要达到的效果:
如果全选复选框选中,那么选项1和选项2复选框全部选中;如果全选复选框为空,那么选项1和选项2复选框全部取消
如果选项1、选项2其中一个没选中,那么全选复选框为空
如果选项1和选项2都选中,复选框选中
选项1和选项2为控件数组,均为复选框,选项1的下标为0,选项2的下标为1
代码如下
版本一:
Private Sub Check1_Click() '编辑全选复选框功能
If Check1.Value = 1 Then
Check2(0).Value = 1
Check2(0).Value = 1
ElseIf Check1.Value = 0 Then
Check2(1).Value = 0
Check2(1).Value = 0
End If
End Sub
Private Sub Check2_Click(Index As Integer) '编辑选项1和选项2的功能,这两个为控件数组,选项1的下标为0,选项2的下标为1,均为复选框控件
If (Check2(0).Value = 0 And Check2(1).Value = 0) Then '分情况进行判断
Check1.Value = 0
ElseIf (Check2(0).Value = 1 And Check2(1).Value = 1) Then
Check1.Value = 1
ElseIf (Check2(0).Value = 0 Or Check2(1).Value = 0) Then
Check1.Value = 0
ElseIf (Check2(0).Value = 0 And Check2(1).Value = 1) Or (Check2(0).Value = 1 And Check2(1).Value = 0) Then
Check1.Value = 0
End If
End Sub
版本二:
Private Sub Check1_Click() '编辑全选复选框功能
If Check1.Value = 1 Then
Do While Index <= Check2.UBound
Check2(Index).Value = 1
Index = Index + 1
Loop
ElseIf Check1.Value = 0 Then
Do While Index <= Check2.UBound
Check2(Index).Value = 0
Index = Index + 1
Loop
End If
End Sub
Private Sub Check2_Click(Index As Integer) '编辑选项1和选项2的功能,这两个为控件数组,选项1的下标为0,选项2的下标为1,均为复选框控件
If (Check2(0).Value = 0 Or Check2(1).Value = 0) Then '如果选项1和选项2其中1个没被选,那么全选复选框就不会被选
Check1.Value = 0
ElseIf (Check2(0).Value = 1 And Check2(1).Value = 1) Then '如果选项1和选项2都被选了,那么全选复选框就会被选上
Check1.Value = 1
End If
End Sub
目前运行后,全选没有问题,但是选上了选项1和选项2之后,再次单击选项1以达到选项1和全选的复选框为空时,选项2的复选框也为空了,经过断点调试发现,再次单击选项1以达到选项1和全选的复选框为空时
运行了Check2的代码后又运行了Check1的代码,请问如何实现开头的所述的效果?
另外运行了Check2的代码没有点选Check1(全选复选框)为何就运行了Check1的代码?