When Checking or Unchecking Checkboxes, How do I get Value of how many Checkboxes are checked into a Textbox

Gary Simpson 471 Reputation points
2023-05-20T15:50:49.18+00:00

Hello Good People,

I Have 7 Checkboxes at the moment and a textbox, Checkboxes Called And Textbox Called

Checkbox1 = ChbSortFri, Checkboc2 = ChbSortSat, Checkbox3 = ChbSortSat,

Checkbox4 = ChbSortMon, Checkbox5 = ChbSortTue, Checkbox6 = ChbSortWed

Checkbox7 = ChbSortThu. (Textbox = TxtSortTotal )

when My for loads the textbox value = 0, Unless any Checkboxes are already checked.

If I Check Checkbox1 Then the value in the textbox = 1 then If I check Checkbox2 Then the value in the textbox = 2 etc. ((( Let's say only two Checkboxes are checked, But If I ( UNCHECK ) Checkbox1 Then I want the Value to show 1 in the textbox. or how many Checkboxes are checked.

I have tried lots of different coding, But here are two of the different codes I have tried

Is It Possible for any of you good people to show me How I can Achieve Sorting this issue I have

Kind Regards Gary


 'Get how many CheckBoxes are Checked or Unchecked
    Private Sub GetHowManyChecked()

        Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        Dim Sum2 As Integer

        If ChbSortFri.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortFri.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortSat.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortSat.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortSun.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortSun.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortMon.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortMon.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortTue.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortTue.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortWed.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortWed.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortThu.CheckState = CheckState.Checked Then Sum2 = 1
        TxtSortTotal.Text = Sum1 + Sum2

        If ChbSortThu.CheckState = CheckState.Unchecked Then Sum2 = 0
        TxtSortTotal.Text = Sum1 + Sum2




        ' I have also Tried
        'Private Sub ChbSortFri_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortFri.CheckedChanged

        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortFri.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If

        '    If ChbSortFri.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0

        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If

        'End Sub

        'Private Sub ChbSortSat_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortSat.CheckedChanged
        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortSat.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 - Sum2
        '    End If

        '    If ChbSortSat.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If
        'End Sub

        'Private Sub ChbSortSun_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortSun.CheckedChanged
        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortSun.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    ElseIf ChbSortSun.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If
        'End Sub

        'Private Sub ChbSortMon_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortMon.CheckedChanged
        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortMon.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    ElseIf ChbSortMon.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If
        'End Sub

        'Private Sub ChbSortTue_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortTue.CheckedChanged
        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortTue.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    ElseIf ChbSortTue.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If
        'End Sub

        'Private Sub ChbSortWed_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortWed.CheckedChanged
        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Integer

        '    If ChbSortWed.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    ElseIf ChbSortWed.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If

        'End Sub

        'Private Sub ChbSortThu_CheckedChanged(sender As Object, e As EventArgs) Handles ChbSortThu.CheckedChanged

        '    Dim Sum1 As Integer = GetDouble(TxtSortTotal.Text)
        '    Dim Sum2 As Double

        '    If ChbSortThu.CheckState = CheckState.Checked Then
        '        Sum2 = 1
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    ElseIf ChbSortThu.CheckState = CheckState.Unchecked Then
        '        Sum2 = 0
        '        TxtSortTotal.Text = Sum1 + Sum2

        '    End If

        'End Sub

    End Sub
Developer technologies | VB
0 comments No comments
{count} votes

Accepted answer
  1. Anonymous
    2023-05-20T17:53:52.6066667+00:00

    Hi

    Try this out:

    ' Form1 with Panel1 containing
    ' any number of CheckBoxes
    ' TextBox1 for count of Checked
    Option Strict On
    Option Explicit On
    Public Class Form1
    	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    		For Each c As Control In Panel1.Controls
    			If c.GetType = GetType(CheckBox) Then
    				AddHandler c.Click, AddressOf CheckBox_CheckedChanged
    			End If
    		Next
    	End Sub
    	Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs)
    		TextBox1.Text = GetCkd()
    	End Sub
    	Function GetCkd() As String
    		Dim chd As Integer = 0
    		For Each c As Control In Panel1.Controls
    			If c.GetType = GetType(CheckBox) Then
    				If DirectCast(c, CheckBox).Checked Then chd += 1
    			End If
    		Next
    		Return chd.ToString
    	End Function
    End Class
    
    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.