将 VB.NET 中的检查列表转换为整数

Converting check List in VB.NET to integer

这是我第一次使用 VB.Net 这是一项大学作业,已经到期 submission.I 想创建一个简单的程序来确定用户是否患有埃博拉病毒。因此,有一个包含埃博拉核心症状的复选框列表。如果用户选择 4 或更多,应该有一条提示消息说用户最有可能感染埃博拉病毒,否则用户没有埃博拉病毒。

我已经创建了表单并且它可以工作,但不知道如何将复选框实现为将被汇总的数字。

这是表单的代码

Public Class Checkbxvb  
    Private Sub Checkbxvb_Load(sender As Object, e As EventArgs) Handles MyBase.Load  
        Label1.Text = "Click to select the symptoms you are having"  
        CheckBox1.Text = "Fever"  
        CheckBox2.Text = "Loss of appetite"  
        CheckBox3.Text = "sore throat"  
        CheckBox4.Text = "Gastrointestinal Symptoms"  
        CheckBox5.Text = "Unexplained bleeding or bruising"  
        CheckBox6.Text = "Loss of weight"  
        Button1.Text = "Submit"  
        Button2.Text = "Close"  
    End Sub  

我想创建一个按钮来收集我之前所说的用户输入。谢谢

如果您使用的是 CheckListBox,则可以使用其 CheckedItems 集合 Count 属性 来获取您需要的内容。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If CheckedListBox1.CheckedItems.Count > 3 Then
        MessageBox.Show("You may have Ebola.")
    Else
        MessageBox.Show("You probably don't have Ebola.")
    End If
End Sub

如果您使用的是 CheckBox 控件,请将它们添加到 List(Of T) 中。 T 代表类型。在表单级别为列表创建一个变量,以便可以从 Form.Load 和单击按钮时看到它。然后你可以遍历你的集合并在 Checked 属性 为 True 时增加一个计数器。

Private CkBxList As New List(Of CheckBox)

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    CkBxList.AddRange({CheckBox1, CheckBox2, CheckBox3, CheckBox4})
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim counter As Integer
    For Each cb In CkBxList
        If cb.Checked Then
            counter += 1
        End If
    Next
    If counter > 3 Then
        MessageBox.Show("You may have Ebola.")
    Else
        MessageBox.Show("You probably don't have Ebola.")
    End If
End Sub

如您所见,使用 CheckedListBox 的代码要简单得多。尝试使用最适合您目的的控件。