vb.net textbox / richtextbox GetPreferredSize not working



我有一个winforms的RichTextBox和TextBox(尝试两者)。当我输入文本时,我希望这个框在垂直方向上变大(或者垂直方向上变小),这样所有的文本都是可见的。

我在RichTextBox TextChanged事件中使用以下代码:

RTB.Height = RTB.GetPreferredSize(New Size(RTB.Width, 0)).Height

这段代码在大多数情况下都可以工作,除了一种情况——当你输入一个比框的宽度大的单词(不含空格)。什么好主意吗?

谢谢。

已在Stackoverflow上找到以下答案!只是需要更好地搜索…

Private Sub rtb_ContentsResized(ByVal sender As Object, ByVal e As System.Windows.Forms.ContentsResizedEventArgs) Handles txtQuestion.ContentsResized
    Dim h = e.NewRectangle.Height, w = e.NewRectangle.Width
    h = Math.Max(h, sender.Font.Height)
    h = Math.Min(h, Me.ClientSize.Height - 10 - sender.Top)
    h += sender.Height - sender.ClientSize.Height + 1
    sender.Height = h
End Sub

RichTextBox控件中的测量字符串

尝试使用RTB最小和最大大小属性。

听起来设置一个最大宽度可能会解决你的问题。

最新更新