WoodChuckChuck WoodChuckChuck - 1 year ago 237
Vb.net Question

vb.net Autosize Multiline Textbox height with wordwrap

I'm trying to make a fixed width textbox in a windows forms app in visual studio 2013 that will begin as a single line in height and expands as the user types and either the text wraps (wordwrap) or when the user pushes enter to create a new line. Ideally i would like to set a max height at which point a vertical scroll bar would be added. Also, the textbox should shrink when the user deletes content as well.

Would also much prefer to be able to use a rich text box however I would settle for a regular text box.

Please tell me it doesn't require some crazy workaround to do what should be relatively easy.

Thanks in advance!!

Answer Source

If you want to use a rich textbox then try adding this to your form's class - remembering to rename all the bits that say"RichTextBox1" to the name of your richtextbox name

Private Sub richTextBox1_ContentsResized(sender As Object, e As contentsResizedEventArgs) Handles RichTextBox1.ContentsResized
    RichTextBox1.Height = e.NewRectangle.Height + 12
End Sub

The only downside of this is that whatever size you initially chose for your richtextbox, it will be ignored as the above event fires when the form loads