我有一个 winforms RichTextBox 和 TextBox(两者都尝试)。当我输入文本时,我希望该框垂直变大(或垂直变小),以便所有文本都可见。
我在 RichTextBox TextChanged 事件中使用以下代码:
RTB.Height = RTB.GetPreferredSize(New Size(RTB.Width, 0)).Height
此代码在大多数情况下都有效,除了一个 - 当您输入一个大于框宽度的单词(不带空格)时。有任何想法吗?
谢谢。
我有一个 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
从
尝试使用 RTB 最小和最大尺寸属性。
听起来像设置最大宽度可能会解决您的问题。