2015-10-05 190 views
1

我试图在Visual Studio 2013中的Windows窗体应用程序中制作一个固定宽度的文本框,该行将以高度单行开始,并随着用户的类型和文本换行(wordwrap)或当用户按下输入以创建新行时。理想情况下,我想设置一个最大高度,在此点将添加一个垂直滚动条。此外,当用户删除内容时,文本框也应该缩小。vb.net使用wordwrap自动调整多行文本框高度

也更喜欢能够使用富文本框,但我会解决一个普通的文本框。

请告诉我,它不需要一些疯狂的解决方法来做什么应该是相对容易的。

在此先感谢!

+0

我知道怎么牛逼o增加文本框的大小。我需要知道如何检索文本框内的文本的高度,否则我不知道它有多大。 – WoodChuckChuck

+0

请参阅[C#调整文本框大小以适应内容](http://stackoverflow.com/q/8048455/719186) – LarsTech

+0

谢谢LarsTech! – WoodChuckChuck

回答

0

如果你想使用丰富的文本框,然后尝试添加以下内容到形式的类 - 记住该说“RichTextBox1”你RichTextBox的名字

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

唯一的缺点名称的所有位重命名这是,无论大小,你最初选择您的RichTextBox,它将被作为上述事件触发忽略加载窗体时

+0

感谢David,我不担心加载时的大小,我打算在加载时设置它。我有一个正常的文本框来调整我喜欢的方式。我将用richtextbox实施您的解决方案。 – WoodChuckChuck

1

这为我工作:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _ 
    Handles TextBox1.TextChanged 
    TextBox1.Height = 
     TextRenderer.MeasureText(
      TextBox1.Text, 
      TextBox1.Font, 
      New Size(TextBox1.ClientSize.Width, 1000), 
      TextFormatFlags.WordBreak 
     ).Height 
End Sub