netice 2006-4-4 11:26
VB6中"复选框"问题如何控制用户选定个数呢?
在VB6中,我想让用户最多选定2个复选框,如何控制呢?在选定第三个时其他的自动取消选定..
先谢过了!
Nothing 2006-4-4 20:23
在窗体加加下面代码
[code]
Private Sub CheckCheckBox(ss As CheckBox)
Dim aa As Control
Dim cc As Long
For Each aa In Me.Controls
If TypeName(aa) = "CheckBox" Then
If aa.Value = 1 Then
cc = cc + 1
End If
End If
Next
If cc > 3 Then
ss.Value = 0
End If
End Sub
[/code]
然后要每个CheckBox的Click事件中加入 CheckCheckBox Check控件
例如:
[code]
Private Sub Check3_Click()
CheckCheckBox Check3
End Sub
[/code]
netice 2006-4-4 22:29
我运行了下..发现你做的这个不是随机的,而是第3个CheckBox即CheckBox3总被弹起,若超过3个的话CheckBox3就被弹起...是不是应该用个控件组来控制呢?
这是一个想法你看看是不是行..我运行了下发现只能倒着选中可以实现,正着选中就不能被选中了;
请帮我改改让它正反都能实现..谢谢了啊!
我用了4个CheckBox控件成为一个checkeBox控件组,打算只是让用户只能选中一个
che1为CheckBox控件name
Option Explicit
Dim i, j As Integer
Private Sub Che1_Click(Index As Integer)
For i = 0 To 3 '检查是否有被选中的CheckBox
If Che1(i).Value = 1 Then
For j = 0 To 3 '若有的话就进行检查是否存在第2个CheckBox控件被选中
If j <> i Then
If Che1(j).Value = 1 Then '有的话就取消选中
Che1(j).Value = 0
End If
End If
Next j
End If
Next i
End Sub
Private Sub Form_Load() '加载时四个控件全为未被选中
For i = 0 To 3
Che1(i).Value = 0
Next i
End Sub
[[i] 本帖最后由 netice 于 2006-4-4 22:35 编辑 [/i]]
Nothing 2006-4-4 23:28
使用数组是一个简单的办法,在数组的CLICK事件中,其实加个条件就可以了,提示你一下,Che1(Index)是当前的CheckBox。
你只要判断其他的Che1都没选中就行了,即i<>Index时,代码就不给你写了,你自己研究吧。
netice 2006-4-5 14:59
已经搞定。。OK!十分感激啊 。。。。。……^@^……