0
我有一组中的8个复选框和我希望有binair十进制值basicly如果VB.net十进制值
checkbox1.checked =真 checkbox2.checked =真
然后值必须是(2^0)+(2^1)= 3(0 = checkbox1和1 = checkbox2等)
我知道解决方案可能很简单,但直到现在我不能让它工作。我现在所拥有的代码如下:
Private Function AnyOptionsChecked() As Boolean
For Each chk As CheckBox In GroupBox1.Controls
t = t + 1
If chk.Checked = True Then
i = i + 2^t
End If
Next
Return False
End Function
但似乎t是已经在7(原因有8个复选框)之前的if/else开始工作。
有人知道如何解决这个问题,或能够指出我在正确的方向吗? 谢谢。
感谢您的正确答案。不知怎的,它有点不同,然后我预期。如果你只选择CheckBox1,它会从128开始,而你会希望CheckBox1从1开始。我要做的就是将表单中的复选框转过来,这并不是什么大问题,但它仍然让我有点困惑哈哈!非常感谢你回答它像一个魅力工作! –
仅仅因为你把它叫做checkbox1,并不意味着它是集合中的第一项。所以在这个意义上它不是很强大。在表单中添加另一个复选框可能会完全改变集合中复选框的排序,从而改变函数的结果。所以它是有用的,因为解决方案取决于你想要达到的目标。 –
对。再次感谢您的回复。将为未来记住这一点! –