2016-03-31 19 views
1

Şu an iki saat boyunca sıkışmış durumdayım. Cevabı çok araştırdım ve hala programımda neyin yanlış olduğunu anlayamıyorum.Bir tablodaki etiketlerin boyutuLayoutPanel

Form2'de bir TableLayoutPanel1 var. Bu benim, bir liste etiketleri oluşturmak ve daha sonra TableLayOutPanel1 için bu etiketleri tüm eklemek hangi kod şudur:

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 

sorun tam etiket tabloda görünen olmamasıdır [image açıklama girin. Burada] [1]

Etiketleri otomatik olarak tabloyu ayırmayı denedim. Hiç birşey çalışmıyor. Sanki etiket metninin tabloda bir çizgiyi geçmesine izin vermeyen, görünmez bir çizgi var gibi. Herhangi bir yardım takdir edildi. Teşekkürler.

Şekil 2'deki düzen. enter image description here

TLP 5pt'lerde yazı tipini oluşturduğumda ne olur? Tüm etiket iki satırda görünür. enter image description here

+0

- Etiketi arka rengi mavi veya kırmızı olarak göstermiş olabilirsiniz, ancak bunlar Yerleşik değil veya TLP – Plutonix

+0

kenar boşluğu/dolguları olabilir. Resim, etiketlerin metinlerinin tamamlanmadığını gösterir. Kodu görürseniz, birçok isim daha uzun. –

+0

TLP'nin genişliği ya da başka bir şey yüzünden bunun iyi olup olmadığını anlayamıyorum - her şey her yerde gri, etiketlerin nerede başladığını ve bitmediğini belirtmenin bir yolu yok. DockFill'i bunlarla kullandığınızdan emin olun. – Plutonix

cevap

1

Temel olarak, tüm bu etiketleri oluşturursunuz, bunları bir listede saklarsınız. Daha sonra bunları kullanmak için kullandığınız tek şey, denetimler koleksiyonuna eklemek üzere oluşturduğunuz başka bir yeni etiketine yerleştirmektir. İşte

hiçbir ekstra listesi ile bunları yapmak için daha kısa, daha basit yoludur ve TLP için sadece bir çizik etiket değişkeni ayarlayın: Ben bu görüntüde bakabileceğim ki ne bilmiyorum

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 
+0

Teşekkürler! Ve evet .. kodum İspanyolca: P –

+0

Yapacak. Teşekkürler! Bu web sayfası harika. İnsanlar cevap vermek için çok yardımsever ve hızlıdır. –

İlgili konular