vb.net textbox / richtextbox GetPreferredSize不起作用

时间:2013-04-02 15:28:07

标签: vb.net winforms richtextbox

我有一个winforms RichTextBox和TextBox(尝试两者)。当我输入文字时,我希望盒子垂直变大(或垂直变小),以便所有文本都可见。

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

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

此代码适用于大多数情况 - 除了一个 - 当您放入一个大于框宽度的单个单词(没有空格)时。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

已在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

Measure String inside RichTextBox Control

答案 1 :(得分:0)

尝试使用RTB最小和最大尺寸属性进行试验。

设置最大宽度可能会解决您的问题。