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