以下代码是我通过主窗口判断Form3窗口的复选框来输出数据,可是选择一个复选可以,但我的Form3窗口还有一些这样的复选框,多了我不会写了判断了,请问该怎么改
Private Sub Command20_Click()
If Form3.Check1.Value = 1 Then
Dim i&, j&, m&, tn&(2), ts$(2), n() As Byte ts(0) = "01234"
ts(1) = "56"
ts(2) = "789"
End If
For i = list1.ListCount - 1 To 0 Step -1 tn(0) = 1
tn(1) = 1
tn(2) = 1n = StrConv(list1.List(i), 128) For j = 0 To 2
For m = 0 To 2
If InStr(ts(m), Chr(n(j))) > 0 Then tn(m) = tn(m) - 1
Next
Next
If tn(0) = 0 And tn(1) = 0 And tn(2) = 0 Then Else list1.RemoveItem i Next
End Sub
以上是Check1的条件,我还有Check2-Check4个复选框
Check2的条件是
tn(0) = 2
tn(1) = 1
tn(2) = 0
Check3的条件
tn(0) = 0
tn(1) = 2
tn(2) = 1
Check4的条件
tn(0) = 3
tn(1) = 0
tn(2) = 0
请老师告诉我,这个按键判断合并代码将如何写,刚才把第一个样板照葫芦画瓢的分别改成Check2-Check4加在Check1下,却不好使,有时多选就完蛋了,请老师帮忙改一下
Private Sub Command20_Click()
If Form3.Check1.Value = 1 Then
Dim i&, j&, m&, tn&(2), ts$(2), n() As Byte ts(0) = "01234"
ts(1) = "56"
ts(2) = "789"
End If
For i = list1.ListCount - 1 To 0 Step -1 tn(0) = 1
tn(1) = 1
tn(2) = 1n = StrConv(list1.List(i), 128) For j = 0 To 2
For m = 0 To 2
If InStr(ts(m), Chr(n(j))) > 0 Then tn(m) = tn(m) - 1
Next
Next
If tn(0) = 0 And tn(1) = 0 And tn(2) = 0 Then Else list1.RemoveItem i Next
End Sub
以上是Check1的条件,我还有Check2-Check4个复选框
Check2的条件是
tn(0) = 2
tn(1) = 1
tn(2) = 0
Check3的条件
tn(0) = 0
tn(1) = 2
tn(2) = 1
Check4的条件
tn(0) = 3
tn(1) = 0
tn(2) = 0
请老师告诉我,这个按键判断合并代码将如何写,刚才把第一个样板照葫芦画瓢的分别改成Check2-Check4加在Check1下,却不好使,有时多选就完蛋了,请老师帮忙改一下
把全部check的程序贴出来
For I = 0 To Form3.Controls.Count - 1
If TypeOf Form3.Controls(I) Is CheckBox Then
X=Form3.Controls(I).Value'取得CheckBox的值
If x>0 Then
Form3.Controls(I).BackColor = vbRed'你要做的事情
else
Form3.Controls(I).BackColor = RGB(12,200,236)'你要做的事情
End If
Next I
End Sub