Höhe einer TextBox in C# verändern

Ich gebe zu, der Titel klingt geradezu trivial. Genauer betrachtet ist es aber gar nicht so einfach die Größe eines TextBox Controls in C# zu ändern, denn eine TextBox hat die Autosize-Eigenschaft nicht. Bei anderen Controls kann man die Autosize-Eigenschaft auf false setzen und dann die Höhe (Height-Property) verändern. Bei der TextBox geht dies so leider nicht.

Wie es doch geht, möchte ich euch nachfolgend zeigen. Der Trick ist folgender:

textBoxTest.Multiline = true;
textBoxTest.MinimumSize = new Size(150, 24);
textBoxTest.Size = new Size(150, 24);
textBoxTest.Multiline = false;

Zuerst muss man die Multiline-Eigenschaft auf true setzen. Danach kann man nach Lust und Laune die MinimumSize-, sowie die Size-Property anpassen, um die Größe der Textbox zu verändern. Wenn man fertig ist, setzt man die Multiline-Eigenschaft wieder auf false. Die TextBox behält die eben gesetzte Größe dennoch. So einfach ist das.

Wer sich jetzt noch fragt, wofür man das braucht, wenn die TextBox sich doch selbst in ihrer Größe anpasst, der sollte mal den BorderStyle auf “None” setzen und die Schriftgröße verändern. Möchte man nämlich eine TextBox ohne Rahmen anzeigen lassen und mit einer etwas größeren Schrift, so muss man feststellen, dass die automatische Größenanpassung nicht korrekt funktioniert. Das kann man auch gut an nachfolgendem Screenshot erkennen:

C# TextBox Height - TextBox Höhe verändernAuf dem Form befinden sich vier Textboxen:

1: Schriftgröße und BorderStyle unverändert
2: Schriftgröße erhöht, BorderStyle unverändert
3: Schriftgröße erhöht BorderStyle  = “None”
4: Schriftgröße erhöht, BorderStyle = “None”, Größe der Textbox angepasst

Wie man bei TextBox 3 sehen kann, funktioniert die Autosize-Funktion bei deaktiviertem Rahmen nicht mehr korrekt und gewisse Buchstaben werden nicht mehr vollständig dargestellt.

Hier schafft der eben von mir gezeigte Trick Abhilfe, wie man an TextBox 4 gut erkennen kann. Ich hoffe ich konnte hier mit mal wieder dem ein oder anderen helfen.

Viele Grüße,
Raffi

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.