我相信最有效的方法是使用 6 列的 tableLayoutPanel。在每个单元格中添加一个标签,在第一个单元格中显示数字,在第二个单元格中显示该数字的指示符(正确/错误)。对第二个和第三个数字执行相同的操作。(第二个数字 = 第三个和第四个单元格,第三个数字=第五个和第六个单元格)
对于下一组数字,您可以在每个单元格中添加带有标签的新行。
我会添加一些代码,让我的回答更专业。
首先在表单中添加 tableLayoutPanel。您可以随意调整大小(使其宽度足够长以处理数据)
您删除 lastRow 然后添加列(您希望有 6 列)。您将列的大小编辑为 Percentage =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 ,然后您可以添加无限数量的新行。