【发布时间】:2016-12-05 09:58:23
【问题描述】:
我是编程初学者,我有 3 个复选框和 1 个文本框。 当 CheckBox1 和 CheckBox2 被选中时,TextBox 中的文本应为 1,否则应为 0。
这是我的代码:
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged,
CheckBox2.CheckedChanged
If CheckBox1.Checked And CheckBox2.Checked Then
TextBox1.Text = 1
Else
TextBox1.Text = 0
End If
End Sub
这有效,但当我检查所有三个时,TextBox 不会更改为 0 并且仍然是 1。我该如何解决这个问题?我试图将我的代码更改为
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged,
CheckBox2.CheckedChanged
If CheckBox1.Checked And CheckBox2.Checked Then
TextBox1.Text = 1
ElseIf CheckBox1.Checked And CheckBox2.Checked And Checkbox3.Checked Then
TextBox1.Text = 0
Else
TextBox1.Text = 0
End If
End Sub
是否可以将所有复选框分组到一个数组中?然后我会统计是否有超过 2 个 CheckBoxes 被选中,然后做一些事情。
【问题讨论】:
-
尝试使用 Checkbox1.checked = True AND Checkbox2.checked = True
-
开启 Option Strict - 它会为您省去很多烦恼(以及简单的 SO 问题)。
TextBox1.Text = 1之类的无效 -
@GNMercado 我试过了,但它不起作用。
-
@GNMercado,当您可以只使用第一个
Boolean时,将一个Boolean与另一个Boolean进行比较以获得第三个Boolean有什么意义?CheckBox1.Checked = True的计算结果与CheckBox1.Checked完全相同,那么比较的意义何在? -
使用 VS 内置的方便且强大的调试器可以轻松解决这种“困境”。设置断点并观察代码执行。使用鼠标查看变量内容。您将学到很多关于编程的知识。