7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Sub Check1_Click(Index As Integer)
Dim i As Integer, tmp As Integer
For i = Check1.LBound To Check1.UBound
tmp = tmp + Check1(i).Value
Next
For i = Check1.LBound To Check1.UBound
If tmp > 1 Then
Check1(i).Enabled = Check1(i).Value
Else
Check1(i).Enabled = True
End If
Next
End Sub
Option Explicit
Private mcolChecks As New Collection
Private Sub Check1_Click()
UpdateStatus
End Sub
Private Sub Check2_Click()
UpdateStatus
End Sub
Private Sub Check3_Click()
UpdateStatus
End Sub
Private Sub Check4_Click()
UpdateStatus
End Sub
Private Sub Check5_Click()
UpdateStatus
End Sub
Private Sub Check6_Click()
UpdateStatus
End Sub
Public Function UpdateStatus()
Dim blnEnabled As Boolean
blnEnabled = IsOtherUsable
Dim objCheck As CheckBox
For Each objCheck In mcolChecks
If blnEnabled Then
objCheck.Enabled = True
Else
If objCheck.Value = vbChecked Then
objCheck.Enabled = True
Else
objCheck.Enabled = False
End If
End If
Next
End Function
Private Function IsOtherUsable() As Boolean
Dim intCount As Integer
intCount = 0
Dim objCheck As CheckBox
For Each objCheck In mcolChecks
If objCheck.Value = vbChecked Then
intCount = intCount + 1
End If
Next
IsOtherUsable = (intCount < 2)
End Function
Private Sub Form_Load()
mcolChecks.Add Check1
mcolChecks.Add Check2
mcolChecks.Add Check3
mcolChecks.Add Check4
mcolChecks.Add Check5
mcolChecks.Add Check6
End Sub