2014-12-25 19 views
1

我在vb.net和IM是新思維,如果有處理一個TabControl事件在多個checkedlistbox

這裏內的所有checkedlistbox事件可能的處理方式是我的一個checkedlistbox代碼,我想,這是低效這種粘貼到49個checkedlistboxes其餘

Private Sub cbA1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles cbA1.SelectedIndexChanged 

    For i = 0 To cbA1.Items.Count - 1 
     cbA1.SetItemCheckState(i, CheckState.Unchecked) 
    Next 
    cbA1.SetItemCheckState(cbA1.SelectedIndex, CheckState.Checked) 
'DISABLE CHKBOX AFTER PICKING THE CHOICE 
    cbA1.Enabled = False 
End Sub 
+0

您使用複選框或複選框 – SK2185

+0

複選框列表,他們也充滿了項目列表 – AJNovice

回答

0

這是怎麼了我通常做處理許多對象只有1個事件。

Private Sub cb_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbA1.SelectedIndexChanged, cbA2.SelectedIndexChanged, cbA3.SelectedIndexChanged 'and add more checkedlistbox here separated by comma 
    For i = 0 To sender.Items.Count - 1 
     sender.SetItemCheckState(i, CheckState.Unchecked) 
    Next 

    sender.SetItemCheckState(sender.SelectedIndex, CheckState.Checked) 

    'DISABLE CHKBOX AFTER PICKING THE CHOICE 
    sender.Enabled = False 
End Sub 

如何讓checkedlistbox檢查的值,可以發現here

這個代碼將得到指數

For Each indexChecked In CheckedListBox1.CheckedIndices 
    MessageBox.Show("Index " + itemChecked.ToString() + " is checked.") 
Next 

這個代碼將獲得價值

For Each itemChecked In CheckedListBox1.CheckedItems 
    MessageBox.Show(itemChecked.ToString() & " is checked") 
Next 

將「CheckedListBox1」更改爲「發件人」,並將其放入Sub cb_SelectedIndex更改

+0

感謝您的幫助,我想知道哪個checkboxlist被選中。比如發送一個cba3被選中的文本 – AJNovice

+0

@AJNovice:我已將它添加到我的答案中。希望這可以幫助你:) – Christ

0
Private Sub CheckedListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CheckedListBox1.SelectedIndexChanged 
     For i = 0 To CheckedListBox1.Items.Count - 1 
      If CheckedListBox1.SelectedIndex = i Then 
       CheckedListBox1.Items.RemoveAt(i) 
      End If 
     Next 
    End Sub