我现在有8个checkbox控件,我想选择一项后其余就不能在选了,本来可以用Optionbutton控件的,但是为了以后能够多选所以就先做成checkbox控件了,我想问一下怎么能够实现选择一项后,如果用户再点击其他的checkbox控件,就提示,怎么才能实现啊,用checkbox(1)=vbcheck or ....吗?请高手帮一下忙?
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
把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测试通过~~~~ ^_^
呵呵~~不好意思~刚才题意理解错误~~~~~~ 原来你是想用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
For i = 0 To 7
If Check1(i).Value = 1 And Index <> i Then
Check1(Index).Value = 0
End If
Next
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测试通过~~~~ ^_^
原来你是想用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