2

Visual Basic フォーム パネル内でチェックボックスをチェックし、チェックされているものを見つける構文は何ですか? for ループと if ステートメントを使用する方法は理解していますが、各チェックボックスをチェックする構文については混乱しています。例えば:

Dim i As Integer
For i = 1 To 10
    'Here is where my code would go. 
    'I could have ten checkboxes named in sequence (cb1, cb2, etc), 
    'but how could I put i inside the name to test each checkbox?
Next
4

3 に答える 3

8

チェックボックスが追加されたコントロールの Controls コレクションをループする必要があります。各 Control オブジェクトには Controls コレクションがあります。このシナリオでは For Each ループを使用したいので、Controls インデックスを使用してコントロールを取得しなくても、すぐにコントロールを取得できます。

For Each ctrl As var In panel.Controls
    If TypeOf ctrl Is CheckBox AndAlso DirectCast(ctrl, CheckBox).IsChecked Then
        'Do Something
    End If
Next
于 2012-05-11T23:17:10.857 に答える
2

私はVB.Netの構文にはあまり詳しくありませんが、疑似コードでは:

ForEach CheckBox in ControlContainer
  DoSomething
Next

すべての CheckBox コントロールが 1 つのコンテナ (例: a ) にあるPanel場合、上記のコードは .a である各コントロールを反復処理ますCheckBox

于 2012-05-11T23:10:45.463 に答える
0

これを試して :

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If CheckBoxList1.Text = "" Then
                do/display something
                Exit Sub
            Else
                For Each item As ListItem In CheckBoxList1.Items
                    If item.Selected Then
                        do/display something
                    End If
                Next
            End If
        End Sub
于 2013-03-26T05:35:23.197 に答える