在多文本框中动态缩小字体

时间:2015-01-13 05:24:17

标签: vba excel-vba textbox excel

我有一个包含多行文本的文本框的用户表单。我希望文本框的fontsize根据文本框中的写入量动态更改,以便fontsize达到最大值,类似于ItWillGrow属性。我知道以下内容可用于包含带有更改命令的单行的文本框

Private Sub Detail_Format(...)
dim scale as single
Me.FontSize = 10 'default text size
scale = Me.TextWidth(Me![MyTextStr]) / Me![MyTextStr].Width
If scale >= 1 then
     Me![MyTextStr].FontSize = 10/scale
Else
     Me![MyTextStr].FontSize = 10*scale
End If
End Sub

多行文本框有类似内容吗?

1 个答案:

答案 0 :(得分:0)

我正在根据VB code of API回答: -

Private Sub MeasureText1(ByVal e As PaintEventArgs)
    Dim text1 As String = "Measure this text" 
    Dim arialBold As New Font("Arial", 12.0F)
    Dim textSize As Size = TextRenderer.MeasureText(text1, arialBold)
    TextRenderer.DrawText(e.Graphics, text1, arialBold, _
        New Rectangle(New Point(10, 10), textSize), Color.Red)

End Sub

错过了你的标签适用于VBA而不是VB。让我更新一个解决方法。