簡體   English   中英

VB.net Binair復選框的十進制值

[英]VB.net Decimal value of Binair checkbox

我在一個組中有8個復選框,並且基本上,如果要設置binair的十進制值,

checkbox1.checked = true checkbox2.checked = true

那么該值必須為(2 ^ 0)+(2 ^ 1)= 3(0 =復選框1和1 =復選框2等)

我知道解決方案可能很簡單,但是直到現在我還是無法解決問題。 我現在擁有的代碼如下:

    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

但是在if / else開始工作之前,看來t已經是7(因為有8個復選框)。

有人知道如何解決這個問題,或者能夠指出正確的方向嗎? 謝謝。

您的函數返回一個布爾值(真/假),但是如果您想知道已檢查了哪些選項,則實際上您想返回一個數字。 這個怎么樣:

Private Function OptionsChecked() As Integer
    Dim t As Integer = 0
    Dim result As Integer = 0
    For Each chk As CheckBox In GroupBox1.Controls
        If chk.Checked = True Then
            result = result + 2 ^ t
        End If
        t = t + 1
    Next
    Return result
End Function

因此,當未檢查任何選項時,我的函數將返回零。 否則,它返回一個整數,指示已檢查的選項(1 =第一個選項,2 =第二個選項,3 =第一個和第二個選項,依此類推)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM