簡體   English   中英

vb.net 使用自動換行自動調整多行文本框高度

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM