我试图在Visual Studio 2013中的Windows窗体应用程序中制作一个固定宽度的文本框,该行将以高度单行开始,并随着用户的类型和文本换行(wordwrap)或当用户按下输入以创建新行时。理想情况下,我想设置一个最大高度,在此点将添加一个垂直滚动条。此外,当用户删除内容时,文本框也应该缩小。vb.net使用wordwrap自动调整多行文本框高度
也更喜欢能够使用富文本框,但我会解决一个普通的文本框。
请告诉我,它不需要一些疯狂的解决方法来做什么应该是相对容易的。
在此先感谢!
我试图在Visual Studio 2013中的Windows窗体应用程序中制作一个固定宽度的文本框,该行将以高度单行开始,并随着用户的类型和文本换行(wordwrap)或当用户按下输入以创建新行时。理想情况下,我想设置一个最大高度,在此点将添加一个垂直滚动条。此外,当用户删除内容时,文本框也应该缩小。vb.net使用wordwrap自动调整多行文本框高度
也更喜欢能够使用富文本框,但我会解决一个普通的文本框。
请告诉我,它不需要一些疯狂的解决方法来做什么应该是相对容易的。
在此先感谢!
如果你想使用丰富的文本框,然后尝试添加以下内容到形式的类 - 记住该说“RichTextBox1”你RichTextBox的名字
Private Sub richTextBox1_ContentsResized(sender As Object, e As contentsResizedEventArgs) Handles RichTextBox1.ContentsResized
RichTextBox1.Height = e.NewRectangle.Height + 12
End Sub
唯一的缺点名称的所有位重命名这是,无论大小,你最初选择您的RichTextBox,它将被作为上述事件触发忽略加载窗体时
感谢David,我不担心加载时的大小,我打算在加载时设置它。我有一个正常的文本框来调整我喜欢的方式。我将用richtextbox实施您的解决方案。 – WoodChuckChuck
这为我工作:
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
我知道怎么牛逼o增加文本框的大小。我需要知道如何检索文本框内的文本的高度,否则我不知道它有多大。 – WoodChuckChuck
请参阅[C#调整文本框大小以适应内容](http://stackoverflow.com/q/8048455/719186) – LarsTech
谢谢LarsTech! – WoodChuckChuck