私たちは学校でプロジェクトを行い、私のプログラムではパネル内に2つのラジオボタン(yes/no)があり、それらのパネルはグループボックス内にあります。どのようにして別のラジオボタンから値を取得できますか?私はTrue/False値を得ることを見ているだけです。これは、ユーザーが持っているかしていないと言うことができるはずのいくつかの健康問題の簡略化されたリストのようなもので、これはデータベースに送られます。グループボックス内のパネルのラジオボタンのチェック値を取得
すべてのチェックボックスをループし、各結果をStringに追加してからそのStringを返そうとしましたが、絶対に何も返しません。エラーメッセージもありません!私はフォーム内の両方のラジオボタンをループし、両方のif文をチェックするという事実と関係があるかもしれないという疑いがありますが、それ以外の方法はわかりません。すべてのパネルには2つのラジオボタンがあり、それ以上のものはありません。インデックスで見つけることは可能でしょうか?
レイアウトは、わずか2 Oのは、チェックボックスを表し、この
+----------------+
| Y N |
|+-----+ |
|| o o| |
||Panel| |
|+-----+ |
|Groupbox |
+----------------+
ようなものである(Y/Nは、はい/いいえ表します)。
これは、私はすべてをループするために使用codeです:私は本当にこだわっています、とまったく助けをいただければ幸いです
Imports MySql.Data.MySqlClient
Public Class Egenerklaring
' The list of booleans that is supposed to be formatted correctly and sent to the database
Private verdier As List(Of Boolean) = New List(Of Boolean)
' A counter of how many checkboxes which is not checked at all
Private ikkeUtfylt As Integer
Private Function skrivUtListe()
Dim temp As List(Of String) = New List(Of String)
For Each a As Boolean In verdier
temp.Add(a.ToString)
Next
Return String.Join(",", temp)
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer = 0
For Each a As Control In Me.Controls
If TypeOf a Is GroupBox Then
For Each b As Control In a.Controls
If TypeOf b Is Panel Then
For Each c As Control In b.Controls
If TypeOf c Is CheckBox Then
' If checkbox name contains ja/yes
If c.Name.Contains("ja") AndAlso DirectCast(c, CheckBox).Checked Then
verdier(i) = True
' If checkbox name contains nei/no
ElseIf c.Name.Contains("nei") AndAlso DirectCast(c, CheckBox).Checked Then
verdier(i) = False
Else
ikkeUtfylt += 1
End If
End If
i += 1
Next
End If
Next
End If
Next
If ikkeUtfylt > 0 Then
MsgBox("Fyll ut alle boksene!")
Else
MsgBox(Me.skrivUtListe())
End If
End Sub
End Class
。
あなたがしようとしていることはまったく明確ではありません。まず、 'RadionButton'コントロールを使用しているが、' CheckBox'コントロールを使用していると言うことで始まります。あなたのコードから、私は 'CheckBox'を見ることができますが、問題の内容が正確ではありません。 'verdier.Add(True)'と 'verdier.False(False)'を試してみてください。また、私はあなたが適応しなければならないmy [answer](http://stackoverflow.com/a/43319283/6375113)のような再帰的な方法を検討する価値があります。これにより、各コンテナコントロールを下げる必要がなくなります。 – Bugs
ああ、申し訳ありません。その後、何も返さないというのは理にかなっています。私はCheckBoxとRadioButtonを混ぜています。 – gloriousCatnip
ここにいくつかの更新されたコードがあります:https://gist.github.com/wOstensen/552c42f8ed18194387cf1b6599d3c6dd – gloriousCatnip