
不用陣列能解決嗎
uj5u.com熱心網友回復:
用控制元件陣列吧,這樣你不累嗎
用控制元件陣列然后再Click事件里回圈判斷,很容易實作的
uj5u.com熱心網友回復:
可以用集合代替控制元件陣列,代碼如下:
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
運行示例:



下載地址:
鏈接:https://pan.baidu.com/s/1APPDqMaoQPAVSluU0jj2Pg
提取碼:1rl3
uj5u.com熱心網友回復:
簡單的 用數控每操作 一次 對號 變數 加+1 否則 -1
然后出發一次巡查
巡查 發現 變數為 2 那么 所有 非對號的 全不 不可用
代碼絕對 少 速度快
uj5u.com熱心網友回復:
算了我幫你做好了建立一個 check1 然后復制
在連續 粘貼
共計 8 個
--------------------------------------------------一下啊是代碼 你看我的代碼簡單吧
Dim C_index As Integer
Private Sub Check1_Click(Index As Integer)
If Check1(Index).Value = 1 Then C_index = C_index + 1
If Check1(Index).Value = 0 Then
C_index = C_index - 1
For i = 0 To 7
Check1(i).Enabled = True
Next i
End If
If C_index > 1 Then
For i = 0 To 7
If Check1(i).Value = 0 Then
Check1(i).Enabled = False
End If
Next i
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/37002.html
標籤:VB基礎類
