Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Optimale Höhe der Textbox einstellen
#1
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.
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste