***这两天,问题太多,初学vb,分不多了,万望见谅!***谁能帮忙看看这段代码:
Private Sub Check2_Click(index As Integer)
If Check2(index).Value = 1 Then
Select Case index
Case 0
For Num = 3 To 6
Check2(Num).Value = 2
Next
Check2(1).Value = 0
Case 1
For Num = 3 To 6
Check2(Num).Value = 2
Next
Check2(0).Value = 0
Case 2
Check2(3).Value = 0
Case 3
Check2(2).Value = 0
Case 4
Check2(5).Value = Check2(6).Value = 0
Case 5
Check2(4).Value = Check2(6).Value = 0
Case 6
Check2(4).Value = Check2(5).Value = 0
Case 7
Check2(8).Value = 0
Case 8
Check2(7).Value = 0
Case Else
Check2(0).Value = Check2(1).Value = 2
End Select
End If
End Sub我使用的都是图片复选框(style=picture)
出现的错误(和预想的不一样):
1、点击check2(0)和check(1),check(3)~check(6)并不能变灰,而且还可以选择;
2、如果我不用check2(3).value=2,而是利用enabled=false来使其变灰,这样可以,但出现新的问题,再次点击check2(0)使其弹起来的时候(即未选中),那几个按钮还是灰(不能用),如何再使其可以使用?
3、index=4,5,6这三个选项只能选择一个,我上述代码中,老出错!谁有什么好的办法?
4、根据上面我很垃圾的代码哪位高手能帮我精简一下啊谢谢各位大哥大姐了!!!
Private Sub Check2_Click(index As Integer)
If Check2(index).Value = 1 Then
Select Case index
Case 0
For Num = 3 To 6
Check2(Num).Value = 2
Next
Check2(1).Value = 0
Case 1
For Num = 3 To 6
Check2(Num).Value = 2
Next
Check2(0).Value = 0
Case 2
Check2(3).Value = 0
Case 3
Check2(2).Value = 0
Case 4
Check2(5).Value = Check2(6).Value = 0
Case 5
Check2(4).Value = Check2(6).Value = 0
Case 6
Check2(4).Value = Check2(5).Value = 0
Case 7
Check2(8).Value = 0
Case 8
Check2(7).Value = 0
Case Else
Check2(0).Value = Check2(1).Value = 2
End Select
End If
End Sub我使用的都是图片复选框(style=picture)
出现的错误(和预想的不一样):
1、点击check2(0)和check(1),check(3)~check(6)并不能变灰,而且还可以选择;
2、如果我不用check2(3).value=2,而是利用enabled=false来使其变灰,这样可以,但出现新的问题,再次点击check2(0)使其弹起来的时候(即未选中),那几个按钮还是灰(不能用),如何再使其可以使用?
3、index=4,5,6这三个选项只能选择一个,我上述代码中,老出错!谁有什么好的办法?
4、根据上面我很垃圾的代码哪位高手能帮我精简一下啊谢谢各位大哥大姐了!!!
解决方案 »
- 调用存储过程RETURN返回值为空
- 不想用MSFLEXGRID的垂直滚动条,只想通来2个button按钮来实现数据的上下滚动,请问各路高手有什么好办法。
- 从excel中将数据导入到access的问题。为什么第一条数据导入不进来呀?急须马上解决。在线等待!!!!
- 一个简单的问题
- 怎么限制text框只能输入两位数字!!!
- 做了一个OCX控件,已设定二进制兼容,但修改后不能兼容?在线等,100分送上,急!
- 急问:为什么生成控件OCX文件时的classid有时相同有时不同??
- 如何取得存储过程的多个返回值??
- 除了这样,我还能给你什么?
- 谁有Microsoft Visual Basic 2008 Express Edition的汉化包啊?!
- 关于打印的问题
- 100分!是否可以做到对rs数据集进行过滤?
0和1,2和3,4、5和6,7和8分别是四组按钮,每一组就像一组单选框,一个按下,另一个弹起,如何实现,谁能贴个代码出来?
If Check2(index).Value = 1 Then
Select Case index
Case 0, 1
Check2(1 - index).Value = 1 - Check2(index).Value
Case 2, 3
Check2(5 - index).Value = 1 - Check2(index).Value
Case 4, 5, 6
For i = 4 To 6
If i <> index Then Check2(i).Value = 0
Next
Case 7, 8
Check2(15 - index).Value = 1 - Check2(index).Value
Case Else
End Select
End If
If index = 0 Or index = 1 Then
For Num = 3 To 6
Check2(Num).Enabled = Check2(index).Value - 1
Next
End If
End Sub
For Num = 3 To 6
Check2(Num).Enabled = Check2(index).Value - 1
Next
End If
=================================================================
If index = 0 Or index = 1 Then
For Num = 3 To 6
Check1(Num).Enabled = IIf(Check1(index).Value = 0, True, False)
Next
End If
Static n As Integer
If n = 1 Then n = 0: Exit Sub'改变checkBox的值会触发click事件
Check2((Index \ 2) * 2 + 1 - (Index Mod 2)).Value = 1 - Check2(Index).Value
End Sub搞定。
Static n As Integer
If n = 1 Then n = 0: Exit Sub '改变checkBox的值会触发click事件
n = 1
Check1((Index \ 2) * 2 + 1 - (Index Mod 2)).Value = 1 - Check1(Index).Value
End Sub或者:Private Sub Check1_Click(Index As Integer)
Check1((Index \ 2) * 2 + 1 - (Index Mod 2)).Value = 1 - Check1(Index).Value
'这样每点击一次会执行两次,第二次没有改变值,所以没有再触发click事件
End Sub