Label Text-Ausrichtung, wenn der Text zu lang ist



  • Hallo zusammen,

    Ich habe ein Forms:Label mit AutoSize=False und TextAlign=MiddleRight.
    Solange der Text nicht zu groß wird für das Label, wird der auch wie gewünscht dargestellt.

    Ist er aber zu lang, so wird er TopLeft dargestellt. Egal wie ich die TextAlign auch einstelle oder per Code festlege, er bleibt dann TopLeft asugerichtet.

    Ich hätte gerne, dass bei zu langem Text immer nur die letzten Zeichen des Strings in dem Label angezeigt werden.
    Könnt ihr mir einen Tip geben?

    Grüße,
    mathi



  • String ^holeText,^holeVersion;
    			 holeText = Form1::Text;
    			 holeVersion = labelVersion->Text->Remove(0,labelVersion->Text->Length-5);
    			 Form1::Text=holeText + " " + holeVersion;
    

    so werden vom Label "labelVersion" nur die letzten 5 Zeichen in Form1::Text eingefügt
    (ist aber nur eine Möglichkeit)
    eine Prüfung auf Länge und Inhalt müsste aber noch gemacht werden um Fehler in der Eingabe zu vermeiden.

    hab ich mal via DragDrop eingefügt, Du musst natürlich das Script anpassen.
    a bissel muss man auch selber grübeln 😉

    mfg





  • Hallo,

    danke für eure Antworten!
    Also den Text zurecht schneiden wollte ich eigentlich nicht, das passt für den Anwendungsfall nicht so richtig.

    Die autoellipsis Eigenschaft habe ich schon ausprobiert. Keine Verbesserung!. Bei left-aligned Text funktioniert das einwandfrei, aber sobald ich right-aligned verwende, bleibt der Text links ausgerichtet und die autoellipsis eigenschaft fügt die "..." an den Anfang des Strings 😕

    Wie auch immer, ich habe jetzt ne Lösung gefunden:
    Die gewünschte Aufgabe übernimmt jetzt eine readonly RichTextBox, die nach dem setzen des Textes, das Caret ans Ende des Textes setzt und dort hin scrollt. Falls der User jetzt doch mal wild in der TextBox umher klickt, mache ich das gleiche nocheinmal in der OnSelectionChanged.

    Danke schön nochmal,
    Grüße,
    mathi


Anmelden zum Antworten