FontSize-Einstellungen in einem Benutzersteuerelement

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    FontSize-Einstellungen in einem Benutzersteuerelement

    Hallo Leutz,

    ich bin gerade dabei ein Benutzersteuerlement, in dem sich 2 Labels auf einem TableLayoutPanel befinden zu erstellen.
    Ich habe es bereits geschafft, dass ich den Font der Labels nach hinzufügen des Controls auf ein Formular einstellen kann. dazu habe ich fogendes verwendet:

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Public Class ctlTest
    3. Private Sub Laden(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Me.SetStyle(ControlStyles.DoubleBuffer Or ControlStyles.UserPaint Or _
    5. ControlStyles.AllPaintingInWmPaint Or _
    6. ControlStyles.SupportsTransparentBackColor Or _
    7. ControlStyles.ResizeRedraw, True)
    8. Me.BackColor = Color.Transparent
    9. End Sub
    10. Public Overrides Property Font As Font
    11. Get
    12. Return Me.lblDigit1.Font
    13. End Get
    14. Set(value As Font)
    15. Me.lblDigit1.Font = value
    16. Me.lblDigit2.Font = value
    17. End Set
    18. End Property
    19. End Class

    Stelle ich die Schriftgröße auf einen anderen Wert ein als den Standardwert des Controls, so lässt sich die Größe der Schriftart der Labels wunderbar im Formularentwurf einstellen.

    Mein Problem ist nun folgendes:
    Starte ich das Programm mit diesem Control zum debuggen, so stellt sich die Schriftgröße sofort wieder zurück auf den Standardwert ein.

    Könnt ihr mir da etwas auf die Sprünge helfen, was ich da falsch mache, bzw warum die eingestellte Schriftgröße nicht übernommen wird?

    Ich Dank euch mal im Voraus...
    @Michl Sorry. Wenn ich Dein UserContrrol auf eine Form ziehe, stürzt mein Studio ab, Schuld daran ist die Property Font.
    Probier mal dies:

    VB.NET-Quellcode

    1. Public Overrides Property Font As Font
    2. Get
    3. Return MyBase.Font
    4. End Get
    5. Set(value As Font)
    6. MyBase.Font = value
    7. Me.lblDigit1.Font = value
    8. Me.lblDigit2.Font = value
    9. End Set
    10. End Property
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo RFG,

    Danke für deine Hilfe! Damit bleibt die Schriftgröße so wie sie in den Eigenschaften eingestellt wird. :thumbsup:

    Die FontSize im Control "lblDigit1/2" habe ich bei mir auf 36pt als Default voreingestellt.
    Kannst du mit sagen was ich machem muss, dass mir die im Control eingestellten Font-Eigenschaften auch nach Hinzufügen auf einem Formular so angezeigt werden? Diese stehen jetzt immer auf z.B.Font-Size 8.25.

    Desweiteren hätte ich gerne dass sich die Schriftgröße des Controlls automatisch anpasst, wenn ich z.B. die Dock-Eigenschaft auf "Fill" einstelle oder die Größe des Controls mit der Maus ändere. Ich habe schon etwas mit "TextRenderer.MeasureText" usw. rumprobiert, komm aber auch da nicht wirklich weiter.

    Könntes du mir da einige Ansätze aufzeigen.

    Für deine, eure Hilfe wäre ich auch hier sehr Dankbar.
    @Michl Erstelle im Konstruktor den erforderlicehn Font, z.B.:

    VB.NET-Quellcode

    1. Me.Font = New Font("Arial", 30, FontStyle.Bold)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!