【问题标题】:How to sort the sequence of checkbox如何对复选框的顺序进行排序
【发布时间】:2017-04-01 02:32:41
【问题描述】:

我有两个复选框。如果我先检查 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

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

【问题讨论】:

  • "vb.net code needed" - 写过代码吗?有吗?你做了什么尝试来解决你的问题,你在哪里卡住了?您的代码以何种方式没有达到您的预期?该代码是什么,问题出在哪里?我们可以帮助您,但我们不会为您完成工作
  • 我使用 if cb1.checked=true AND cb2.checked=false then listbox.items.add(cb1.text)
  • 编辑你的问题,在那里显示你的代码,显示输出,然后告诉你预期的输出和你得到什么。
  • 还有什么问题?试着理解我们无法从这里看到您的屏幕。无论您有什么其他代码,我们都不知道。无论您看到什么行为,我们都没有看到。不要只是指着你的显示器说“它不工作”。 解释问题。在大多数情况下,为了解问题所做的努力会揭示解决方案。
  • "if only one checkbox is checked it displays the data but if both checked there's no data displayed in the list box" - 因为你的逻辑没有涵盖那种情况。查看您的IfElseIf 条件。它们仅考虑选中一个复选框的情况,而不考虑两者。如果要保持这种结构,则必须为该场景添加另一个 ElseIf

标签: vb.net winforms checkbox


【解决方案1】:

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

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

固定代码:

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

如果您在检查每个事件后自动发生事件,您的运气可能会更好。此代码只会运行一次,因此如果您只检查了一个并且代码运行,即使随后检查了另一个,代码也不会再次运行,除非您将其置于某种循环中(直到循环可以工作) .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2017-01-17
    相关资源
    最近更新 更多