TableLayoutPanel中标签的大小

时间:2016-03-31 20:48:04

标签: vb.net tablelayoutpanel

我已经被困在这里两个小时了。我搜索了很多答案,仍然无法弄清楚我的程序有什么问题。

我在form2中有一个TableLayoutPanel1。这是我创建标签,列表然后将所有这些标签添加到TableLayOutPanel1的代码:

Public Class Form2

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim lbl0, lbl1, lbl11, lbl2, lbl22, lbl3, lbl33, lbl4, lbl44, lbl5, lbl55, lbl6, lbl66, lbl7, lbl77 As New Label
    lbl0.Text = "ACCESORIOS"
    lbl0.Font = New System.Drawing.Font("MS Reference Sans Serif", 15.75, FontStyle.Bold)
    lbl0.Location = New Point(110, 12)
    lbl0.AutoSize = True
    Me.Controls.Add(lbl0)
    lbl1.Text = "Té 180°"
    lbl11.Text = Te180
    lbl2.Text = "Té 90° Empalme - Codo Triple"
    If Global1 <> 0 Then
        lbl22.Text = 0
    Else
        lbl22.Text = Global2 - 1
    End If
    lbl3.Text = "Soporte 90° T/T"
    lbl33.Text = SoporteTT90
    lbl4.Text = "Base para tubo de 1 1/2 - 3 agujeros"
    lbl44.Text = Int(lbl11.Text) + Int(lbl22.Text) + (lbl33.Text)
    lbl5.Text = "Base para tubo de 1 1/2 - 1 agujero"
    lbl55.Text = 2
    lbl6.Text = "Tapas para base de tubo de 1 1/2"
    lbl66.Text = lbl44.Text
    lbl7.Text = "Tornillos y Tarugos 5 x 50 y N°8 Ladrillo Hueco"
    lbl7.Font = New System.Drawing.Font("MS Reference Sans Serif", 15.75, FontStyle.Bold)
    lbl77.Text = (Int(lbl44.Text) + Int(lbl55.Text)) * 3
    Dim labellist As New List(Of Label)()
    labellist.Add(lbl1)
    labellist.Add(lbl2)
    labellist.Add(lbl3)
    labellist.Add(lbl4)
    labellist.Add(lbl5)
    labellist.Add(lbl6)
    labellist.Add(lbl7)
    labellist.Add(lbl11)
    labellist.Add(lbl22)
    labellist.Add(lbl33)
    labellist.Add(lbl44)
    labellist.Add(lbl55)
    labellist.Add(lbl66)
    labellist.Add(lbl77)
    Dim h = 0
    For i = 0 To 1
        For j = 0 To 6
            Dim etiqueta As New Label
            etiqueta.Text = labellist(h).Text
            TableLayoutPanel1.Controls.Add(etiqueta, i, j)
            h = h + 1
        Next
    Next
End Sub


End Class

问题是表格中没有出现完整标签。[在此处输入图片说明] [1]

我尝试过自动调整标签,tablelayout。什么都行不通。这就像有一条不可见的线条,它不会让标签的文字超过表格中的一条线。任何帮助赞赏。感谢。

form2中的布局。 enter image description here

当我在TLP 5pts中制作字体时会发生什么。整个标签分为两行。 enter image description here

1 个答案:

答案 0 :(得分:1)

主要是,您创建所有这些标签,将它们存储在列表中。然后,您使用它们的目的是将文本设置在您创建的另一个 new 标签上,以添加到控件集合中。

这是一种更简单,更简单的方法来完成所有这些,没有额外的列表,只有一个用于TLP集的临时标签变量:

Dim texts = {"Te 180", "Te 90 - blah blah blah", "Soprte 90 T/T",
             "Torillas y salsa", "Torillas y salsa y guacamole"}

Dim lbl As Label
For n As Int32 = 0 To texts.Length - 1
    lbl = New Label
    lbl.Text = texts(n)
    ' more important than autozise, probably:
    lbl.Dock = DockStyle.Fill
    ' debug: to see the border for tweaking
    lbl.BorderStyle = BorderStyle.FixedSingle
    ' add the one you created to the controls collection
    tlp1.Controls.Add(lbl, 0, n)
Next
相关问题