AutoSize-Größe anpassen & rosa/lila Ausrichtungslinie bei selbsterstellten Steuerelemente

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von DerBrain.

    AutoSize-Größe anpassen & rosa/lila Ausrichtungslinie bei selbsterstellten Steuerelemente

    Hallo zusammen,
    ich bin gerade dabei mir ein benutzerdefiniertes Label zu erstellen, dass Brüche schön darstellen kann. Hierfür habe ich unter vbarchiv.net/forum/id22_i37117…nem-label-darstellen.html etwas Beispiel-Code gefunden.
    Nachdem ich ihn angepasst habe, kam ich auf die Idee eines benutzerdefinierten Controls, welches von Forms.Label erbt. Den Beispielcode habe ich nochmals leicht modifiziert in die Methode OnPaint gepackt. Soweit so gut.
    Nach dem nächsten Compilieren konnte ich dann direkt das Label in meine GUI schieben und es verhält sich genau wie ein Label nur dass es schöner aussieht:-)

    Nun zu meinem Problem:
    In meiner GUI nutze ich für gewöhnlich diese rosa/lila Ausrichtungslinie, damit Texte in Textboxen und Labels auf der gleichen Linie liegen.
    Nun ist jedoch diese besagte Linie bei meinem überschriebenem Label immernoch auf der Position eines normalen Textes und nicht so, dass der Bruch zentrisch ausgerichtet ist.
    Meine Frage ist daher:
    Wie verschiebe ich diese Linie in meinem Label damit es auf der korrekten Position ist?

    Meine Vermutung:
    Ich denke, diese Funktion ist eine Property des Labels. Verständlicherweise heißt diese Eigenschaft jedoch nicht 'LilaLinieZumAusrichten'. Ich bin mal alle Methoden und Properties durchgegangen die ich in meinem Label unter me. finde, kann jedoch nichts finden, was auf diese Linie deuten könnte. Ich hoffe, mir kann jemand helfen...

    Gruß DerBrain

    DerBrain schrieb:

    Meine Vermutung:
    Die Linie wird über die Fontgröße generiert und wäre dann die Hauptlinie der Zeichenkette, also die, auf der die Buchstaben ohne Unterlängen stehen.
    Experimentiere mal in diese Richtung.
    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!
    Ich habe jetzt den TextAlign auf MiddleLeft gestellt, dann liegt die Linie dort, wo ich sie gerne hätte. Damit kann ich leben, auch wenn ein überschreiben natürlich schöner wäre:-)
    Aber danke für den Tipp.

    Dadurch, dass mein Label 2 Texte untereinander hat, funktioniert die AutoSize-Funktion nimmer. In dem Code-Beispiel wird diese einfach auf False gesetzt. Es wäre schön, wenn ich diese reparieren könnte. Da 'AutoSize' nur eine Property ist, vermute ich, dass ich die Methode onSizeChange anpassen muss - wie genau weiß ich jedoch net so recht. In meinem OnPaint erhalte ich die ideale Größe des Bruchs, welche auch bei AutoSize = true idealerweise eingestellt sein soll.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DerBrain“ ()