5 Stimmen

WordWrap = false für ein Label einstellen

Wie sollte ich die WordWrap = false zu einer System.Windows.Forms.Label ?

Ich habe eine Kopfzeile auf einem Panel, die Folgendes anzeigen soll "MyPanel capt..." . Ich verwende also AutoEllipsis = true aber das ist nicht ausreichend.

Ich verwende auch " AutoSize = true ", denn ich möchte, dass das Etikett so wenig Platz wie möglich einnimmt.

Apropos, Visual Basic 6.0 hat es getan.

8voto

Neil Moss Punkte 6414

Ich habe einen ähnlichen Effekt erzielt:

label1.AutoSize = false;
label1.AutoEllipsis = true;

und die Größe des Beschriftungsfeldes auf eine Zeile in der Höhe zu beschränken.

1voto

Alistair Evans Punkte 34072

Ich bin mir ziemlich sicher, dass man nicht verhindern kann, dass Etiketten verpackt werden. Eine alternative (wenn auch etwas grobe) Option ist es, die Beschriftung auf automatische Größe zu setzen (so dass die Breite mit dem Text wächst), und dann ein Steuerelement daneben zu setzen, das in der Z-Reihenfolge vor ihm sitzt. Wenn die Breite des Etiketts einen bestimmten Punkt überschreitet, wird der Inhalt des überlappenden Etiketts von dem anderen Steuerelement verdeckt.

Wie ich schon sagte, ist es eine ziemlich grobe Methode, um den Effekt zu erzielen.

Auch, wenn Sie versuchen, AutoEllipsis zu verwenden, ich nehme an, Sie haben AutoResize deaktiviert? Ich glaube, das hat Vorrang.

1voto

serhio Punkte 27312

Ich habe eine Lösung gefunden:

this.label.AutoEllipsis = true;
this.label.AutoSize = true;

In der Panel Ereignisbehandler für Resize:

...
textHeight = this.label.Font.SizeInPoints; // Take in pixels, not points
...
Size newMaxSize = new Size(this.Width,
    textHeight + label.Padding.Top + label.Padding.Bottom);
this.label.MaximumSize = newMaxSize;
...

1voto

Tester101 Punkte 7786

Versuchen Sie, die Eigenschaft MaximumSize der Etiketten einzustellen.

0voto

SqlRyan Punkte 31999

Ich glaube nicht, dass es eine Möglichkeit gibt, dies zu tun - Etiketten sind nicht ein- oder mehrzeilig, per se. Es hängt nur davon ab, ob die Text Eigenschaft des Etiketts keine Zeilenumbrüche enthält.

Wenn Sie es einzeilig haben wollen, ersetzen Sie die CRLF-Zeichen in der Text mit etwas anderem.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X