none
如何根据内容自动调整RichTextBox的大小? RRS feed

  • 问题

  • 论坛帖子内容多样,有不同字体的文字、图片等,且每个帖子内容多少不一,显示高度不同。

    winform采用RichTextBox显示帖子内容,固定宽度,自动换行。理想的效果是,RichTextBox根据帖子内容自动确定高度,既不留空白,也不显示垂直滚动条。

    但是,目前既无法获取帖子内容高度,也无法获取是否出现滚动条(否则,可加大高度,直到滚动条消失)。

    这个问题困扰了我很久了,各位高人,有什么好办法吗?


    韩立学



    2014年3月27日 2:42

答案

  • Hi,你可以试一下先把WordWrap设置为False,把ScrollBars设置为None,然后在ContentsResized事件里更改RichTextBox的大小,如下所示:

    RichTextBox1.WordWrap = False
    RichTextBox1.ScrollBars = RichTextBoxScrollBars.None
        Private Sub ContentsResized(sender As Object, e As ContentsResizedEventArgs) Handles RichTextBox1.ContentsResized
            RichTextBox1.Size = e.NewRectangle.Size
        End Sub

    • 已标记为答案 大海怪 2014年3月31日 0:15
    2014年3月28日 8:00

全部回复

  • Hi,

    你是开发的winform应用还是web应用?

    如果是web应用的话, 我建议你去论坛有更多web开发人员参与的Web技术社区去寻求建议。

    如果是winform应用,据我所知能够显示富文本的控件, 除了RichTextBox, 也就只有webbrowser了。

    但是除了需要调节这个控件的高度来适应内容, 还需要调节winform的窗口大小, 从UI的用户体验来看, 我觉得你所提到的应用偏向于web应用。

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年3月28日 2:28
    版主
  • 谢谢回复! winform应用,我现在用的正是RichTextBox,但它的高度无法根据内容确定。

    韩立学

    2014年3月28日 2:45
  • 如果能检测到RichTextBox的垂直滚动条也可,只要存在垂直滚动条,就增加高度。

    韩立学

    2014年3月28日 5:42
  • Hi,你可以试一下先把WordWrap设置为False,把ScrollBars设置为None,然后在ContentsResized事件里更改RichTextBox的大小,如下所示:

    RichTextBox1.WordWrap = False
    RichTextBox1.ScrollBars = RichTextBoxScrollBars.None
        Private Sub ContentsResized(sender As Object, e As ContentsResizedEventArgs) Handles RichTextBox1.ContentsResized
            RichTextBox1.Size = e.NewRectangle.Size
        End Sub

    • 已标记为答案 大海怪 2014年3月31日 0:15
    2014年3月28日 8:00