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

Другие вопросы по тегам