0
以下代码仅适用于第一行。一旦进入下一行,它就会出现在底部,然后继续前进。我之前在另一个应用程序中完成了此操作,因此我引用了该代码。但是,我得到了不同的结果。我希望行从顶部到底部,而不是从底部到顶部。无法将控件添加到TableLayoutPanel
变量whichcolumn = 2
起初是因为前两个文本框已经创建。变量whichRow = 0
。变量i = 2
并存在给所有控件一个唯一的名称。所有列在运行时间之前存在。
Private Sub Add_Click(sender As System.Object, e As System.EventArgs) Handles addBTN.Click
If whichColumn < 8 Then
Dim startTXT As New TextBox
Dim endTXT As New TextBox
startTXT.Name = "start" & i & "TXT"
endTXT.Name = "end" & i & "TXT"
rangesPanel.Controls.Add(startTXT, whichColumn, whichRow)
whichColumn += 1
rangesPanel.Controls.Add(endTXT, whichColumn, whichRow)
whichColumn += 1
If Label3.Visible = False Then
Label3.Visible = True
Label4.Visible = True
ElseIf Label5.Visible = False Then
Label5.Visible = True
Label6.Visible = True
ElseIf Label7.Visible = False Then
Label7.Visible = True
Label8.Visible = True
End If
i += 1
Else
rangesPanel.RowStyles.Add(New RowStyle(SizeType.AutoSize))
rangesPanel.RowCount += 1
whichColumn = 0
whichRow += 1
Dim startTXT As New TextBox
Dim endTXT As New TextBox
startTXT.Name = "start" & i & "TXT"
endTXT.Name = "end" & i & "TXT"
rangesPanel.Controls.Add(startTXT, whichColumn, whichRow)
whichColumn += 1
rangesPanel.Controls.Add(endTXT, whichColumn, whichRow)
whichColumn += 1
i += 1
End If
End Sub
块包含“startTXT.Name =”start“&i&”TXT“行,但在这种情况下”i“是什么?我没有看到我的实例化或初始化。 – Andarta
更新后。 i = 2并每两个文本框增加一个。这是所有的控件都有一个独特的名字。再次,它从2开始,因为第一组文本框是在运行时间之前创建的。他们是start1TXT和end1TXT。 – user287848
有关TableLayoutPanel的行的属性是什么?我的猜测是第一行设置为填充,所以发生的是第一行文本框和第二行文本框之间的所有空白实际上是TableLayoutPanel中第一行的整个高度。打开显示网格线将帮助您确定这一点,以便您可以准确查看面板的行/列正在执行的操作。 – Andarta