【问题标题】:check checkbox one by one with one button一键勾选复选框
【发布时间】:2016-02-01 03:26:31
【问题描述】:

我的表单中有 8 个复选框和一个按钮,我需要的是:

对于每个按钮单击,我希望一个一个地检查每个复选框。 例如:

first click 

checkbox1.checked = true
checkbox2.checked = false
checkbox3.checked = false
checkbox4.checked = false

第二次点击

checkbox1.checked = true
checkbox2.checked = true
checkbox3.checked = false
checkbox4.checked = false

第三次点击

checkbox1.checked = true
checkbox2.checked = true
checkbox3.checked = true
checkbox4.checked = false

如果可能的话,有人可以帮助我吗?提前致谢

【问题讨论】:

  • 第 4 次和第 5 次点击会发生什么?你试过什么,一些代码在哪里?如果用户已经检查了一些会发生什么?
  • 按钮被点击,复选框不可见。不管它是什么顺序,最好是 1 然后 2 然后 3 等等。
  • 啊!使用 UI 控件作为变量?坏主意。
  • 我只是在学习 Visual Basic 控件,如果 CheckBox1.Checked = False Then CheckBox1.Checked = True Else If CheckBox2.Checked = False Then CheckBox2.Checked = True End If End If 似乎工作正常跨度>

标签: vb.net checkbox


【解决方案1】:

好吧,因为当我读到这篇文章时,我很好奇自己如何做到这一点,所以我想出了这个:

注意:这可能不是最好的方法,但它确实有效。

注意:你想要完成的事情很奇怪,但是关于如何做到这一点的逻辑,我假设你可以自己做。

代码:

public sub fun()
dim doOnce as Boolean = False

'Loop Through all Controls in the Form    
For Each control in Mybase.Controls

'Check if the type of control is a CheckBox
    If control.GetType.Tostring = "System.Windows.Forms.CheckBox" Then
        If doOnce = False Then
            If control.Checked = false Then
                control.Checked = True
                doOnce = true
            else
                control.Checked = False
            End if
        End If
    End If
Next

end sub

希望这对您有所帮助。 虽然我不得不说这个想法不会让你学到很多东西,除了如何指向一些控件(也许我什至没有向你展示最好的方法)。

编辑: 正如我刚刚注意到的那样,这不会从“CheckBox1”变为“CheckBox4”(例如)。它完全相反地移动。为什么会这样,我不确定。

【讨论】:

  • 为什么不直接使用for each 并遍历Type(of Checkbox)`的控件?然后如果checked = false,将其设置为true并退出循环。 5 或 6 行代码。
  • 我确实使用了“for each”并且我确实检查了类型(如果这就是你的意思,则没有使用方法),关于退出循环,是的,我本可以做得更好方式,但不确定他想要达到的确切目标是什么。
  • 最后一个放置在控件集合中的控件是每个人看到的第一个控件。使用我的方法,您只需添加 reverse()
  • 如果您只用代码示例回答问题,也许是个好主意。我想这让这变得容易多了。但我同意你的看法。
  • 除非 OP 尝试过,否则我不想回答。我在说的是For Each chk As CheckBox in Me.Controls.OfType(Of CheckBox)() 这将只获得集合中的复选框,从而使您不必确保每次迭代都具有正确的控件类型。
猜你喜欢
  • 1970-01-01
  • 2010-12-15
  • 2011-05-22
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 2014-03-12
  • 2013-09-01
  • 1970-01-01
相关资源
最近更新 更多