首页 > 解决方案 > Visual Studio 2017 社区 RichTextBox 中缺少属性

问题描述

Win 7,VS 2017 社区,框架 4.6.1,RichTextBox 版本 4.6.1.0

我正在使用 RichTextBox 并试图在面板中将 RichTextBox 水平和垂直居中。但是,RichTextBox 控件缺少 ClientSize 属性。Microsoft 文档显示该属性存在。我完全迷失了,欢迎帮助。

在调用此例程之前,已将单个或多行 TextBox.Text 放置在 RichTextBox 中

Private Sub CenterRtb()
    Dim LineSize As SizeF
    Dim RtbW As Single     ' RichTextBox Width
    Dim RtbH As Single     ' RichTextBox Height
    Dim LocX As Integer
    Dim LocY As Integer

    ' Find Longest Line and Total Height Of Lines
    RtbW = 0
    RtbH = 0
    For Each Line As String In rtbText.Lines

cMetrics 是使用 g.MeasureText 测量文本字符串的预定义类

        LineSize = cMetrics.Metrics.GetTexTSize(Line, rtbText.Font)

        If (LineSize.Width > RtbW) Then RtbW = LineSize.Width
        RtbH = RtbH + LineSize.Height
    Next

注意:更喜欢 ClientSize 而不是 RichTextBox 物理大小。

    ' Adjust For RichTextBox Actual Size
    If (RtbW > rtbText.Width) Then RtbW = rtbText.Width
    If (RtbH > rtbText.Height) Then RtbH = rtbText.Height - 10

    rtbText.Width = CInt(RtbW)
    rtbText.Height = CInt(RtbH + 20)

    LocX = CInt((pnlRtb.Width - rtbText.Width) / 2)
    LocY = CInt((pnlRtb.Height - rtbText.Height) / 2)
    rtbText.Location = New Point(LocX, LocY)
End Sub

标签: vb.net

解决方案


推荐阅读