簡體   English   中英

計算並獲取VB.NET中所有選中復選框的值

[英]Count and get all the value of checked checkboxes in VB.NET

可以說我有一個表單,在我的表單下我有一個面板,在面板下我有一個groupbox,在groupbox下我有另一個面板,在這個面板下我有多個復選框,現在,我該如何計數選中了多少個復選框,以及如何獲取選中的復選框的值並將其放入arraylist。 我有一個代碼,但沒有用。

我的代碼:

        Dim list As New ArrayList
        Dim count As Integer
        count = 0
        If TypeOf element Is CheckBox Then

         If cb.Checked Then
            list.Add(cb.Text)
        'End If
        Else
            For Each childElement In element.Controls
               count += 1
            Next
        End If
        MsgBox(count)
        MsgBox(list)

非常感謝你! 任何幫助將不勝感激。 對不起,您英語不好。

循環瀏覽內部面板中的所有控件,並檢查它們是否為CheckBoxes。 如果是,並且已選中,則增加計數並將文本添加到列表中。 我會使用通用的List(Of String)而不是ArrayList。

Dim count As Integer 
Dim myList As New List(Of String)
For Each cb As CheckBox In panel1.Controls.OfType(Of CheckBox)
    If cb.Checked Then
        count += 1
        myList.Add(cb.Text)
    End If
Next
MessageBox.Show(count.ToString)
MessageBox.Show(String.Join(", ", myList))

[編輯]根據Plutonix的建議,代碼已簡化,可以使用Controls.OfType(Of CheckBox)僅遍歷CheckBox類型的控件,

Dim chk As CheckBox
For Each c As Control In thePanel.Controls

    if Typeof c is CheckBox then
     count += 1 // to count check boxes
        chk  =  Ctype(c, Checkbox)
        if chk.Checked Then
            list.Add(chk.Text) // to add the text of checkbox to array
        End If
    End If
Next

您可以使用遞歸操作。 嘗試這個。

        Private Sub getcheckme(ByVal element As Control)
        Dim count As Integer
        count = 0
        If TypeOf element Is CheckBox Then
            If DirectCast(element, CheckBox).Checked = True Then
                count += 1 'this will count the checked checkboxes
                list.Add(element.Text) ' this will add the value of checkboxes into arraylist
            End If
        Else
            For Each childElement In element.Controls
                Me.getcheckme(childElement)
            Next
        End If
        End Sub

只需使用以下Me.getcheckme(Me)即可調用: Me.getcheckme(Me)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM