2012-04-18 4 views
1

레이블 및 텍스트 상자 목록을 만들려고합니다. 오류는 없지만 양식에 렌더링되지 않습니다. 내 루프WinForm에서 동적 컨트롤이 렌더링되지 않습니다.

Private Sub AddLabels_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'MsgBox(strNumberOfLabels + " " + strOrderNum) 
    TableLayoutPanel1.AutoSize = True 
    TableLayoutPanel1.Visible = False 
    TableLayoutPanel1.SuspendLayout() 
    For i As Integer = 0 To strNumberOfLabels 

     'MsgBox(i) 
     Dim txtBox As New TextBox 
     Dim txtLabel As New Label 
     txtLabel.Text = "Label " + i 
     txtBox.Name = "txt" + i 
     TableLayoutPanel1.Controls.Add(txtLabel) 
     txtLabel.Show() 
     txtBox.Show() 
     TableLayoutPanel1.ResumeLayout() 
     TableLayoutPanel1.Visible = True 
    Next 
End Sub 

답변

0

이되는 열을 지정하는 다른 Add 오버로드를 사용하여 시도로 가야 제어를 행 값이 확인했습니다 :

Dim txtLabel As New Label 
txtLabel.Text = "Label" + i.ToString 
'\\ TableLayoutPanel1.Controls.Add(txtLabel) 
TableLayoutPanel1.Controls.Add(txtLabel, 0, 0) 

를이 필요하지 않습니다 :

'\\ txtLabel.Show() 

루프 외부로 이동해야합니다.

Next 
TableLayoutPanel1.ResumeLayout() 
'\\ TableLayoutPanel1.Visible = True 

txtBox 컨트롤은 TableLayoutPanel 컨트롤이나 폼에 절대 추가되지 않습니다.

OnLoad 절차 중에 TableLayoutPanel을 표시하거나 표시하지 않도록 설정해야한다고 생각하지 않습니다. 양식은 아직 표시되지 않습니다.

유일한 다른 사항은 strNumberOfLabels입니다. 나는 그것이 0 인 것으로 의심하고있다.

+0

아직 마지막 두 사람은 분명히 루프에서 작동하지 않습니다. – Somejerk

+0

@Somejerk 내 노트 이외에 문제를 재현 할 수 없습니다. TableLayoutPanel에 레이블이 있습니다. – LarsTech

+0

나는 for 루프를 꺼냈다. 그리고 여전히 그것을했다. 게다가 나는 msgboxs로 값을 확인했다. 매우 이상합니다. – Somejerk

관련 문제