我现在有8个checkbox控件,我想选择一项后其余就不能在选了,本来可以用Optionbutton控件的,但是为了以后能够多选所以就先做成checkbox控件了,我想问一下怎么能够实现选择一项后,如果用户再点击其他的checkbox控件,就提示,怎么才能实现啊,用checkbox(1)=vbcheck or ....吗?请高手帮一下忙?

解决方案 »

  1.   

    Dim i As Integer
        For i = 0 To 7
            If Check1(i).Value = 1 And Index <> i Then
                    Check1(Index).Value = 0
            End If
        Next
      

  2.   

    把checkbox作成数组控件,假设index从0-7然后编以下过程
    Private Sub Check1_Click(Index As Integer)
        If Check1(Index).Value = 0 Then    '如果这个控件刚才被选中,那么这一次点击就把刚才禁用的恢复~
            For j = 0 To 7
                Check1(j).Enabled = True
             Next
        Else    
            Call Checkme(Index)   '如果刚才这个没有被选中,那么就调用这个过程
        End If
    End Sub
    Sub Checkme(Cnum As Integer)
        For i = 0 To 7      '先把所有的控件禁用
            Check1(i).Enabled = False
        Next
        Check1(Cnum).Enabled = True   '然后启用刚才传递过来的那个数组变量
        Check1(Cnum).Value = 1
    End SubVB6测试通过~~~~  ^_^
      

  3.   

    呵呵~~不好意思~刚才题意理解错误~~~~~~
    原来你是想用Checkbox作单选~~2楼那位老兄的程序,必须先把上次的勾去掉才能选另一个~~
    下面这个程序真正实现了单选~~用这个会好一些~~
    注意:是MouseUp事件,用Click会进入死循环~~~~Private Sub Check1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
            For j = 0 To 7
                Check1(j).Value = 0
             Next
        Check1(Index).Value = 1
    End Sub