最も効率的な方法は、6 列のtableLayoutPanelを使用することだと思います。各セルに、最初のセルに番号を示すラベルを追加し、2 番目のセルにその番号のインジケーター (正しい/間違っている) を追加します。2 番目と 3 番目の数字も同様に行います (2 番目の数字 = 3 番目と 4 番目のセル、3 番目の番号 = 5 番目と 6 番目のセル)。
次の数値セットについては、各セルにラベルを付けて新しい行を追加できます。
私の答えをより専門的にするためにいくつかのコードを追加します。
まず、フォームに tableLayoutPanel を追加します。好きなようにサイズを変更します(データを処理するのに十分な長さの幅にします)lastRowを削除してから、列を追加します(6列にしたい)。列のサイズをパーセンテージ = 16.67% になるように編集します。
Public Class Form1
Private rowIndex
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
For i = 0 To 4 Step 2
Dim val As Integer = 3
AddLabels(val, i, 0)
Next
For i = 1 To 5 Step 2
Dim val As String = "right"
AddLabels(val, i, 0)
Next
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
rowIndex = rowIndex + 1
Me.TableLayoutPanel1.RowStyles.Add(New RowStyle(SizeType.Absolute, 30))
Me.TableLayoutPanel1.Height = Me.TableLayoutPanel1.Height + 30
For i = 0 To 4 Step 2
Dim val As Integer = 3 'here you have to put your number
AddLabels(val, i, rowIndex)
Next
For i = 1 To 5 Step 2
Dim val As String = "right" 'here you have to put your indicator
AddLabels(val, i, rowIndex)
Next
End Sub
Private Sub AddLabels(ByVal lblValue As String, ByVal column As Integer, ByVal row As Integer)
Dim lblHeader As New Label
lblHeader.AutoSize = True
lblHeader.Margin = New Padding(0)
lblHeader.BackColor = Color.Transparent
lblHeader.TextAlign = ContentAlignment.MiddleLeft
lblHeader.Dock = DockStyle.None
lblHeader.Text = lblValue
'Put the lblHeader in the right cell
Dim lblHeaderPos As New TableLayoutPanelCellPosition(column, row)
TableLayoutPanel1.SetCellPosition(lblHeader, lblHeaderPos)
TableLayoutPanel1.Controls.Add(lblHeader)
End Sub
問題が発生した場合はお知らせください。
また、追加する行数がわからない場合は、tableLyoutPanel をパネル内に配置します。パネルのプロパティ AutoScroll=True を作成すると、新しい行を無限に追加できます。