Hallo,
ich möchte in C# den FontSize eines Labels-Felds per Code einstellen.
Label[n].Font.Size = lFSize[k];
Wobei lFSize[0] = 18 ist.
Es funktioniert nicht.
Die Labels mit Text laden funktioniert auf diese Art und Weise.
Irgendwie habe ich das mit der OOP noch nicht so richtig drauf.
vG
der_kps
Hi,
verrätst du mir kurz welche Art von Anwendung du schreibst? Winforms, WebForms?
bis später
tastatürchen
Hallo,
es ist eine Forms-Anwendung.
labels[n] habe ich ordentlich instanziert; mit der Textzuweisung
labels[n].Text = lText[0];
wobei lText[0] = „mein Text“; ist und string[] lText;
funktioniert es ja. Es sind übrigens labels[] nicht Label[] !
Nur
labels[0].Font.Size= lFSize[0];
wobei lFSize[0] = 18; ist und int[] lFSize;
funktioniert nicht.
vG
der_kps
… mehr auf http://w-w-w.ms/a5dleg
Hallo,
Font ist ja eine eigene Klasse (dokumentiert hier). Die Size Property eines Font-Objektes ist read-only und kann nur über den Konstruktor festgelegt werden. Für dich bedeutet das, dass du nur das Font-Property auf dem Label verändern kannst, nicht jedoch die Size Property des Fonts.
Hier (ohne Arrayindizes zwecks Lesbarkeit):
Font font = new Font(label.Font.Name, lText, label.Font.Style));
Ein vollständiges Beispiel in C# -> hier.
Gruß
tastatürchen
1 „Gefällt mir“
Zuweisung vergessen
es fehlt noch
label.Font = font;
und eine Klammer zuviel habe ich auch gemacht.
-.-
Hallo,
Danke für den Hinweis!
Ich habe das jetzt erfolgreich versucht mit
Font font = new Font(SchriftName, SchriftSize);
label.Font = font;
In den Variablen kann ich z.B. Arial, 20 festlegen.
Ich verstehe das jetzt so, dass an der Stelle
label.Font.Name
meine String-Variable SchriftName
und an der Stelle
label.Font.Size
meine float/Single-Variable SchriftSize steht.
Font font = new Font(label.Font, lText, label.Font.Style);
funktioniert mit
lText
und .
Style
nicht.
Die Schriftfarbe ändere ich mit der Variablen SchiftColor
label.ForeColor = Color.FromName(SchriftColor)
Nur Bold, italic etc. bekommen ich über Zuweisung mittels Variable nicht hin 
vG
der_kps
FontStyle
Hi,
ein Beispiel für Bold und Italic:
Font = new Font(FontFamily.GenericSansSerif.Name,
12,
FontStyle.Bold | FontStyle.Italic)
Ich verwende hier den generischen Sans Serif Font (der auf Microsoft Sans Serif lautet), setze die FontSize auf zwölf und das Label gleichzeitig auf Bold und Italic.
lieGrü
tastatürchen
Hallo,
so habe ich das auch gemacht und mittels switch verschiedene Einstellungen (Bold, Italic, underline) abgefragt und dann mit jeweils einer ganzen Zeile new Font … zugewiesen.
In VB6 konnte ich mir (glaube ich) so eine ganze Zeile als Text mit Verkettung zusammen basteln und als Variabel ablegen. Und das geht hier nicht.
Für den Fontnamen und Fontsize kann ich eine Variable einsetzen. Das gefällt mir besser als die Switch-Lösung.
switch (SchriftStyle = comboBox2.Text)
{
case "Regular":
label0.Font = new Font(label0.Font, System.Drawing.FontStyle.Regular);
break;
case "Bold":
label0.Font = new Font(label0.Font, System.Drawing.FontStyle.Bold);
break;
…
Ich baue mir zum Einstieg einige (sinnfreie) Codeschnipsel z.B. für dieses Thema zusammen.
Über ComboBox und UpDown wähle ich Fontname und -size aus und formatiere ein Label.
Bei Bedarf kann ich das dann in richtigen Anwendungen einsetzen.
vG
der_kps
Eine Idee. Es wäre schön folgendermaßen vorgehen zu können:
// Befüllen der ComboBox
FontStyleEnumExtensions.GetFontStyleEnumValues()
.ForEach(fontStyle =\> \_comboBox.Items.Add(fontStyle.ToString()));
// bei Änderung des ComboBoxInhaltes (z. B.)
void cbo\_SelectedValueChanged(object sender, EventArgs e)
{
var fontStyle = FontStyleEnumExtensions.FontStyleFromString(
\_comboBox.SelectedItem.ToString());
\_label.Font = new Font(FontFamily.GenericSansSerif, 12, fontStyle);
}
Die folgende Klasse ermöglicht dies:
public static class FontStyleEnumExtensions
{
public static FontStyle FontStyleFromString(string fontStyleString)
{
FontStyle fontStyle;
if (Enum.TryParse(fontStyleString, out fontStyle))
{
return fontStyle;
}
else
{
throw new ArgumentException("Invalid FontStyle provided");
}
}
public static List GetFontStyleEnumValues()
{
var allStyles = new List
{
FontStyle.Regular,
FontStyle.Bold,
FontStyle.Italic,
FontStyle.Strikeout,
FontStyle.Underline
};
return allStyles;
}
}
Uijuijui…
Das sieht ja verwegen professionell aus.
Ich nehme den Code mal zu meiner Sammlung. Vielleicht kommt der Tag, dass ich auch in
solche OOP-Strukturen denke 
Danke!
der_kps