Проблема с добавлением элементов управления в 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
1 ответ
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.Absolute, 22))
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
изменения SizeType
от Percent
в Absolute
, по всем рядам, решил вопрос.