Registriert seit: 14.02.2016
Version(en): 2010-2016
Hallo liebe Experten,
ich möchte meine TextBox in der Höhe immer der eingestellten Schriftgröße, Schriftart sowie natürlich dem in der Textbox enthaltenden Text automatisch,
d.h. optimal anpassen. Nun gibt es natürlich die Funktion Autosize. Das Problem ist aber, das die Breite der Textbox fest vorgegebnen ist, so dass immer nur
die Höhe der Textbox in Abhängigkeit von den oben genannten Paramtern optimal bestimmt werden muss.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
es kommt auf die passende Reihenfolge an.
Teste mal so:
Private Sub CommandButton1_Click()
With TextBox1
.AutoSize = False
.MultiLine = False
.Width = 50
'.Text = "Das ist ein etwas längerer Text."
.MultiLine = True
.AutoSize = True
End With
End Sub
Gruß Uwe
Registriert seit: 14.02.2016
Version(en): 2010-2016
Hallo Uwe,
danke für deine Hilfe, der Code funktioniert. Hatte gestern eine wirklich komplizierte Lösung, aber wie du schon sagtest, die Reihenfolge ist wichtig. Im Nachhinein ist die Sache natürlich wieder ganz einfach.
Aber so ist, frißt sich ein Denkfehler einmal fest, läufst du in die völlig falsche Richtung. Ich erlaube mir hier noch eine kleine Ergänzung:
Code:
Dim vbWidth
vbWidth = 200
With Me.Controls("TextBox" & 1)
.AutoSize = False
.MultiLine = False
.Width = vbWidth
.Text = "Das ist ein etwas längerer Text mit einigen vielen Worten."
.MultiLine = True
.AutoSize = True
.Height = .Height
.Width = vbWidth
End With
Nicht bei diesem Beispiel, aber bei einigen Fällen die ich hier bei mir durchgegangen bin, trat noch eine kleiner Fehler auf. Die Weite der TextBox war dann praktisch durch AutoSize gegeben. Deshalb die Höhe abspeichern
und das width nochmal mit dem Befehl .Width = vbWidth wiederholt festlegen, damit die anfangs vorgegebene Weite für .Width bestehen bleibt, also:
.Height = .Height
.Width = vbWidth