1

ラベルとテキストボックスのリストを作成しようとしています。エラーはありませんが、フォームにレンダリングされていません。ループに値があることを確認しました

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
4

1 に答える 1

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

手順中に TableLayoutPanel を表示または非表示にする必要はないと思いますOnLoad。フォームはまだ表示されていません。

他に確認すべき唯一のことは、 の値ですstrNumberOfLabels。私はそれがゼロであると疑っています。

于 2012-04-18T01:07:05.593 に答える