I have a question,,,

I create 1 form, and in this form I add 5 control checkbox, namely:
Checkbox1 = cek1
Checkbox2 = cek2
Checkbox3 = cek3
Checkbox4 = cek4
Checkbox5 = cek5

I want to ask,
1. how to count the number of checkboxes are checked.?
2. how to / code to display cekbox anywhere in check.? for example:
if I choose cek1 and cek2, the message "You Choose Cek1 and Cek2"
if I choose cek2 and cek3, the message "You Choose Cek2 and Cek3"
if I choose cek1 and cek3, the message "You choose cek1 and cek3"

and so on. .. ..

I've been using code like this:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim i As Integer
        Dim ChName As String
        Dim chCek As String
        For Each ctl As Control In Me.Controls
            If ctl.Name.Contains("Chkbox") Then  'Name of checkboxes
                Dim chk As CheckBox = TryCast(ctl, CheckBox)
                If chk.Checked Then i = i + 1
                If i > 2 Then
                    i = i - 1
                    MessageBox.Show("you may only select 2 checkboxes", "Info", MessageBoxButtons.OK)
                    Exit Sub
                End If
                If i < 1 Then i = 0
                Debug.Print("Nama Checkbox : " & chk.Name & vbCrLf & "Status : " & chk.Checked.ToString)
                ChName = chk.Name  'Variable to hold the properties 'Name' of the checkbox control
                chCek = chk.Text   'Variable to hold the properties 'Text' of the checkbox control
            End If
        MsgBox("number of checkboxes selected are : " & i.ToString & vbCrLf & "checkbox that you select are : " & ChName & vbCrLf & "Status : " & chCek.ToString & "", "Information", vbOK)

    End Sub

but still can not.

i need your help, guys...

thank you.

Edited by pritaeas: Updated title

5 Years
Discussion Span
Last Post by Reverend Jim

An easier way to loop over specific controls is

For Each chk As CheckBox In Me.Controls.OfType(Of CheckBox)()

so your code then becomes

Dim numChecked As Integer = 0
Dim message As String = "You checked "

For Each chk As CheckBox In Me.Controls.OfType(Of CheckBox)()
    If chk.Checked Then
        numChecked += 1
        message &= chk.Text & " and "
    End If

If numChecked > 2 Then
    MsgBox("you may only select 2 checkboxes")
    message = message.Substring(0, message.Length - 5)
End If

Edited by Reverend Jim

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.