2016-03-31 10 views
1

Ich bin seit zwei Stunden in diesem stecken geblieben. Ich habe viel nach der Antwort gegoogelt und kann immer noch nicht herausfinden, was mit meinem Programm nicht stimmt.Größe der Etiketten in einem TableLayoutPanel

Ich habe ein TableLayoutPanel1 in einem form2. Dies ist der Code, in dem ich Etiketten zu erstellen, eine Liste und dann all diese Etiketten auf den TableLayOutPanel1 hinzufügen:

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 

Das Problem ist, dass die das volle Etikett nicht in der Tabelle erscheint [Bildbeschreibung eingeben. hier] [1]

Ich habe versucht Autosizing die Etiketten, das Table-Layout. Nichts funktioniert. Es ist, als gäbe es eine unsichtbare Linie, die den Text des Labels nicht über eine Zeile in der Tabelle hinausgehen lässt. Jede Hilfe wird geschätzt. Vielen Dank.

Das Layout in Form2. enter image description here

Was passiert, wenn ich die Schrift im TLP 5pts mache. Das gesamte Etikett erscheint in zwei Zeilen. enter image description here

+0

Ich weiß nicht, was soll ich in diesem Bild sehen - Möglicherweise haben Sie die Beschriftung zurück in blau oder rot zur Veranschaulichung geändert, aber es könnte sein, sie sind nicht angedockt oder der Rand/Abstand des TLP – Plutonix

+0

Das Bild zeigt, dass die Texte der Etiketten nicht vollständig ist. Wenn Sie den Code sehen, sind viele Namen viel länger. –

+0

Gut, aber ich kann nicht sagen, ob das wegen der TLP-Breite oder etwas anderem ist - alles ist überall grau, keine Möglichkeit zu sagen, wo die Labels beginnen und enden. Stellen Sie sicher, dass Sie DockFill mit ihnen verwenden. – Plutonix

Antwort

1

Hauptsächlich erstellen Sie alle diese Etiketten, speichern Sie sie in einer Liste. Dann verwenden Sie sie nur für den Text auf einem anderen neuen Label, das Sie erstellen, um es der Steuerelementauflistung hinzuzufügen.

Hier ist eine kürzere, einfachere Art und Weise alles, was ohne zusätzliche Liste zu tun, und nur ein Kratzer Etikettengröße für die TLP gesetzt:

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

Danke! Und ja .. mein Code ist in Spanisch: P –

+0

Will do. Vielen Dank! Diese Webseite ist großartig. Die Leute sind sehr hilfsbereit und antworten schnell. –

Verwandte Themen