vb 复选框的多选问题 VB编程问题,关于多个复选框checkbox的判断问题

vb \u5173\u4e8e\u591a\u4e2a\u590d\u9009\u6846\u7684\u591a\u9009\u95ee\u9898

\u7ed9\u4f60\u4e2a\u601d\u8def\u4ee3\u7801\u81ea\u5df1\u5199\u5427
If Check1.Value = 1Then and Check2.Value = 1 then

elseif Check1.Value = 1 and Check2.Value = 0

elseif Check1.Value = 0 and Check2.Value = 1


end if \u4e2d\u95f4\u7684\u4ee3\u7801\u81ea\u5df1\u586b\u5145\u5427

\u4f7f\u7528\u63a7\u4ef6\u6570\u7ec4
Private Sub Check1_Click(Index As Integer)
Dim i As Integer
Dim tmpstr As String
For i = 0 To Check1.UBound
tmpstr = tmpstr & CStr(Check1(i).Value)
Next
Text1.Text = tmpstr
End Sub

Private Sub Form_Load()
Dim i As Integer
Check1(0).Caption = ""
Check1(0).Width = 200
For i = 1 To 7
Load Check1(i)
Check1(i).Visible = True
Check1(i).Left = Check1(i - 1).Left + 300
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
For i = 1 To Check1.UBound
Unload Check1(i)
Next
End Sub

给你修改了一下,你放到里面看看。
你原来的逻辑有问题,因为如果两个都勾选的话,按照你的顺序,先判断1,tn分别被赋值3 0 0,在判断2,tn就被改成了2 1 0了。因此再进行判断就变成了2情况。

Private Sub Command20_Click()

Dim i&, j&, m&, tn&(2), ts$(2), n() As Byte

ts(0) = "01234"
ts(1) = "56789"
ts(2) = ""

'添加一个判断用的变量:
Dim bToDelete As Boolean

For i = List1.ListCount - 1 To 0 Step -1
bToDelete = False '初始为false

tn(0) = 0 '每次循环要初始化一次,不然如果都不勾选的画就可能会出问题
tn(1) = 0
tn(2) = 3

'分两次进行判断。
If Form3.Check1.Value = 1 Then
tn(0) = 3
tn(1) = 0
tn(2) = 0
End If
n = 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 bToDelete = True '此处有所改动,变成设置此标记

'第二次
If Form3.Check2.Value = 1 Then
tn(0) = 2
tn(1) = 1
tn(2) = 0
End If
n = 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
'如果再满足第二次删除的条件:
If bToDelete = True Then
'如果也满足第一次删除的条件
List1.RemoveItem (i)
Else
'不满足第一次,也就是说第一次要保留则什么都不做
End If
End If

Next
End Sub

扩展阅读:vb复选框怎么设置选中状态 ... 如何在复选框中打钩 ... vb复选框怎么设置打勾 ... 复选框怎么单独删除 ... 为什么复选框只能打叉 ... vb复选框数组怎么设置 ... vb复选框改变字体 ... 复选框内容怎么设置 ... 单选按钮和复选框vb设计题 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网