发新话题
打印

VB6中"复选框"问题如何控制用户选定个数呢?

VB6中"复选框"问题如何控制用户选定个数呢?

在VB6中,我想让用户最多选定2个复选框,如何控制呢?在选定第三个时其他的自动取消选定..
先谢过了!

TOP

在窗体加加下面代码
复制内容到剪贴板
代码:
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
然后要每个CheckBox的Click事件中加入 CheckCheckBox Check控件
例如:
复制内容到剪贴板
代码:
Private Sub Check3_Click()
    CheckCheckBox Check3
End Sub

TOP

我运行了下..发现你做的这个不是随机的,而是第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

[ 本帖最后由 netice 于 2006-4-4 22:35 编辑 ]

TOP

使用数组是一个简单的办法,在数组的CLICK事件中,其实加个条件就可以了,提示你一下,Che1(Index)是当前的CheckBox。
你只要判断其他的Che1都没选中就行了,即i<>Index时,代码就不给你写了,你自己研究吧。

TOP

十分感谢,我研究一下

TOP

已经搞定。。OK!十分感激啊 。。。。。……^@^……

TOP

搞定了就好,哈哈。

TOP

发新话题