多个复选框如何判断选中了哪个
假设有5个复选框,选中了 3 5 然后执行相应的语句代码要有效率简洁
Private Sub Check3_Click()用控件数组。
If Check3.Value = 1 And Check5.Value = 1 Then
'
End If
End Sub
Private Sub Check5_Click()
If Check3.Value = 1 And Check5.Value = 1 Then
'
End If
End Sub
Private s As String
Private Sub Check1_Click(Index As Integer)
Select Case Index
Case 0
s = "ID=1 "
Case 1
s = IIf(s <> "", s & " And", "") & " ID=2"
Case 2
s = IIf(s <> "", s & " And", "") & " ID=3"
Case 3
s = IIf(s <> "", s & " And", "") & " ID=4"
Case 4
s = IIf(s <> "", s & " And", "") & " ID=5"
End Select
End Sub
Private Sub Command1_Click()
Debug.Print s
End Sub
dim sum as integer =0
Private Sub Check1_Click()
IF Check1.checked then
sum+=1
else
sum-=1
End If
End Sub
Private Sub Check2_Click()
IF Check2.checked then
sum+=2
else
sum-=2
End If
End Sub
Private Sub Check3_Click()
IF Check3.checked then
sum+=4
else
sum-=4
End If
End Sub
Private Sub Check4_Click()
IF Check4.checked then
sum+=8
else
sum-=8
End If
End Sub
Private Sub Check5_Click()
IF Check5.checked then
sum+=16
else
sum-=16
End If
End Sub
private sub button1_click()
select case sum
case 1:1
case 2:2
case 3:1+2
case 4:3
case 5:1+3
case 6:2+3
case 7:1+2+3
case 8:4
case 9:1+4
case 10:2+4
case 11:1+2+4
case 12:3+4
case 13:1+3+4
case 14:2+3+4
case 15:1+2+3+4
case 16:5
end select
end sub
冒号后面的值代表了哪个复选框被选中,以此类推
这样就很简洁了,效率也不差 呃,漏掉了一部分。。。
select case sum
case 17:1+5
case 18:2+5
case 19:1+2+5
case 20:3+5
case 21:1+3+5
case 22:2+3+5
case 23:1+2+3+5
case 24:4+5
case 25:1+4+5
case 26:2+4+5
case 27:1+2+4+5
case 28:3+4+5
case 29:1+3+4+5
case 30:2+3+4+5
case 31:1+2+3+4+5
end select
用控件数组。标题放些有意义的东西。
Dim obj As Control这和空间数组都可以 用控件数组最简洁了,所有都在一个过程里完成。
For Each obj In Me.Controls
If TypeName(obj) = "CheckBox" Then
Select Case obj.Caption
Case "3"
'to do
Case "5"
'to do
End Select
End If
Next
本帖最后由 bcrun 于 2011-03-15 12:07:06 编辑
Private Sub Command2_Click()
Dim i As Integer, tF As String
For i = 1 To 5
If Me("check" & i).Value = 1 Then
tF = tF & 1
Else
tF = tF & 0
End If
Next
Select Case tF
Case Is = "00000"
''''''''''''''''''''''''
''''''''''''''''''''''''
Case Is = "00101"
Print "check3 ,check5=true"
Case Else
''''''''''''''''''''''
End Select
End Sub
补充:VB , 基础类