2015-01-02 15 views
-1

我有一個複選框列表,我需要獲取屬性名稱,如果複選框 - 或者是否有更高效的方法來做到這一點?下面的代碼確保一次只能點擊兩個複選框,我需要獲取兩個複選框的名稱。我可以循環訪問我的控件並檢索其指定屬性的名稱嗎?

當前代碼:

Private Sub cb_CheckedChanged(sender As Object, e As EventArgs) Handles chckJan. 
    CheckedChanged, 
    chckFeb.CheckedChanged, 
    chckMar.CheckedChanged, 
    chckApr.CheckedChanged, 
    chckMay.CheckedChanged, 
    chckJun.CheckedChanged, 
    chckJul.CheckedChanged, 
    chckAug.CheckedChanged, 
chckOct.CheckedChanged, 
    chckNov.CheckedChanged, 
    chckDec.CheckedChanged 


    'get all checkboxes 
    Dim Months = Controls.OfType(Of CheckBox)().ToArray() 
    'Get the number of checked CheckBoxes. 
    Dim checkedBoxCount = Months.Count(Function(cb) cb.Checked) 
    'Unchecked CheckBoxes should be enabled if and only if the number of checked CheckBoxes is less than the maximum number allowed. 
    Dim enableUncheckedBoxes = checkedBoxCount < 2 
    'Get the unchecked CheckBoxes. 
    Dim uncheckedBoxes = Months.Where(Function(cb) Not cb.Checked) 
    'Enable or disable the unchecked CheckBoxes as appropriate. 
    For Each uncheckedBox In uncheckedBoxes 
     uncheckedBox.Enabled = enableUncheckedBoxes 
    Next 

    Dim CheckBoxArray As CheckBox() = {chckJan, chckFeb, chckMar, chckApr, chckMay, chckJun, chckJul, chckAug, chckSep, chckOct, chckNov, chckDec} 

    For Each CheckBox In CheckBoxArray 
     If CheckBox.Checked = True Then 

     End If 

    Next 

End Sub 
+0

你已經提取了一個複選框列表未選中,提取複選框列表檢查應該是小菜一碟。順便說一句,處理程序錯過了chckSep – Steve

+1

一對組合框更適合您描述的用例 – Plutonix

回答

0

我需要得到兩個複選框

你已經有了一個循環的名稱;使用它:

For Each CheckBox In CheckBoxArray 
    If CheckBox.Checked = True Then 
     Debug.Print(CheckBox.Name) 
    End If 
Next 
相關問題