如何对复选框的顺序进行排序

时间:2017-03-28 13:22:24

标签: vb.net winforms checkbox

我有两个复选框。如果我先检查cb1,然后检查cb2,则ListBox应按检查顺序的顺序显示复选框的数据。

Public Class Form1

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If cb1.Checked = True And cb2.Checked = False Then
      ListBox1.Items.Add(cb1.Text)
      If cb1.Checked = True And cb2.Checked = True Then
        ListBox1.Items.Add(cb1.Text)
      End If
    ElseIf cb2.Checked = True And cb1.Checked = False Then
      ListBox1.Items.Add(cb2.Text)
      If cb2.Checked = True And cb1.Checked = True Then
        ListBox1.Items.Add(cb1.Text)
      End If
    End If
  End Sub
End Class

如果仅选中一个复选框,则显示数据,但如果两者都被选中,则列表框中不会显示任何数据。

Enter image description here

1 个答案:

答案 0 :(得分:0)

你的问题不够明确,我无法确定你想要什么,但这里是我解释的问题的解决方案:

用于检查两者是否都为真的代码嵌套在if语句中,如果它们都为真,则不会运行。 另外,如果你有更多的标准要在ifif的末尾,不要结束。

固定代码:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)         Handles Button1.Click
    If cb1.Checked = True AND cb2.Checked = False Then
        ListBox1.Items.Add(cb1.Text)
    ElseIf cb1.Checked = True AND cb2.Checked = True Then
        ListBox1.Items.Add(cb1.Text)
        ListBox1.Items.Add(cb2.Text)
    End if

    If cb2.Checked = True And cb1.Checked = False Then
        ListBox1.Items.Add(cb2.Text)
    ElseIf cb2.Checked = True And cb1.Checked = True Then
        ListBox1.Items.Add(cb2.Text)
        ListBox1.Items.Add(cb1.Text)
    End If

End Sub

如果您在检查每个事件后自动发生事件,您可能会有更好的运气。这段代码只会运行一次,所以如果你只检查了一个并运行了代码,那么即使检查了另一个代码,代码也不会再次运行,除非你在某种循环中使用它(直到循环可以工作)。