In meinem Code erstelle ich eine Beschriftung mit:
Label namelabel = new Label();
namelabel.Location = new Point(13, 13);
namelabel.Text = name;
this.Controls.Add(namelabel);
Die Zeichenfolge namens name ist zuvor definiert und hat eine Länge von ca. 50 Zeichen. In der Beschriftung meines Formulars werden jedoch nur die ersten 15 angezeigt. Ich habe versucht, mit dem MaximumSize des Etiketts herumzuspielen, aber ohne Erfolg.
Versuchen Sie, die AutoSize-Eigenschaft hinzuzufügen:
namelabel.AutoSize = true;
Wenn Sie mit dem Entwurfseditor eine Beschriftung in ein Formular einfügen, ist diese Eigenschaft standardmäßig true. Wenn Sie die Beschriftung jedoch wie zuvor in Code erstellen, ist die Standardeinstellung false.
Probieren Sie die Eigenschaft AutoSize = true;
Eine andere Möglichkeit ist die Verwendung der MeasureString-Methode der Graphics-Klasse
Graphics e = nameLabel.CreateGraphics();
SizeF stringSize = new SizeF();
stringSize = e.MeasureString(name, namelabel.Font);
nameLabel.Width = (int)stringSize.Width;
Sie können die Eigenschaft Label.AutoSize
verwenden, um die Breite Ihres Etiketts automatisch so anzupassen, dass alle in Label.Text
gespeicherten Inhalte korrekt angezeigt werden.
Es ist erwähnenswert, dass beim Erstellen des Etiketts mit dem Design-Editor die Standardeinstellung für diese Eigenschaft true ist. Wenn Sie jedoch ein Etikett selbst programmgesteuert erstellen, ist die Standardeinstellung für die Eigenschaft false.
namelabel.AutoSize = true;
Natürlich können Sie die Breite Ihres Etiketts auch manuell einstellen, indem Sie Folgendes verwenden, um die erforderliche Breite zu berechnen.
Graphics namelabel_g = namelabel.CreateGraphics ();
namelabel.Width = namelabel_g.MeasureString (
namelabel.Text, namelabel.Font
);
Dokumentation zur Verwendung von Label.AutoSize
finden Sie unter msdn:
Dokumentation zu Graphics.MeasureString
finden Sie hier:
panel_saved.Controls.Add(
new Label
{
Location = new Point(1, 2),
Size = new System.Drawing.Size(43, 18),
BorderStyle = BorderStyle.FixedSingle,
Text = "yourdata"
});