[英]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.