[英]vb.net Autosize Multiline Textbox height with wordwrap
我正在尝试在 Visual Studio 2013 中的 Windows 窗体应用程序中制作一个固定宽度的文本框,该文本框将以单行高度开始,并随着用户键入和文本换行(自动换行)或用户按下 Enter 键而扩展一条新线。 理想情况下,我想设置一个最大高度,此时将添加垂直滚动条。 此外,当用户删除内容时,文本框也应该缩小。
也更希望能够使用富文本框,但我会满足于常规文本框。
请告诉我它不需要一些疯狂的解决方法来做应该相对容易的事情。
提前致谢!!
这对我有用:
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
如果您想使用富文本框,请尝试将其添加到表单的类中 - 记住将所有显示“RichTextBox1”的位重命名为您的富文本框名称
Private Sub richTextBox1_ContentsResized(sender As Object, e As contentsResizedEventArgs) Handles RichTextBox1.ContentsResized
RichTextBox1.Height = e.NewRectangle.Height + 12
End Sub
唯一的缺点是,无论您最初为 Richtextbox 选择什么大小,它都会被忽略,因为在表单加载时会触发上述事件
我用了
txtBox.Height = txtBox.Font.Height * (txtBox.Lines.Count + 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.