标题: 根据文本框大小来自动选择字体大小如何实现 [打印本页] 作者: ljwily 时间: 2011-11-12 18:05 标题: 根据文本框大小来自动选择字体大小如何实现 在做报表时想内容根据文本框大小来自动选择字体大小。谁知道能告诉下吗?作者: todaynew 时间: 2011-11-12 19:28 http://www.office-cn.net/forum.p ... =%D7%D4%CA%CA%D3%A6作者: ljwily 时间: 2011-11-12 19:46
有点深奥没看懂,能解释下吗?
Function ctlFontSize(ctl As Control)
Dim w As Single
Dim i As Long
Dim b As Boolean
ctl.FontSize = n
w = ctl.Width / 1440
For i = n To 1 Step -1
b = (Len(ctl.Value) + 1) * i / 72 - w <= 0
If b = True Then
ctl.FontSize = i
Exit For
End If
Next
End Function作者: roych 时间: 2011-11-13 10:24
没看懂,进入VBE界面,在语句中按下F1,看帮助文件。各项属性都还没了解清楚,又怎么看得懂?作者: andymark 时间: 2011-11-14 21:45
参考示例: http://www.office-cn.net/thread-107249-1-1.html作者: todaynew 时间: 2011-11-15 10:52 本帖最后由 todaynew 于 2011-11-15 11:04 编辑
ljwily 发表于 2011-11-12 19:46
有点深奥没看懂,能解释下吗?
Function ctlFontSize(ctl As Control)
Dim w As Single
Dim n As Long '存放字号的模块级公共变量
Private Sub Form_Load()
n = Me.电站名称.FontSize '将【电站名称】控件的字号赋值给模块级变量n
End Sub
Function ctlFontSize(ctl As Control)
Dim w As Single
Dim i As Long
Dim b As Boolean
ctl.FontSize = n '控件字号赋值为加载时【电站名称】的字号
w = ctl.Width / 1440 '控件宽度换算为英寸,存于w中。
For i = n To 1 Step -1 '按字号递减循环
b = (Len(ctl.Value) + 1) * i / 72 - w <= 0 '比较当前控件值的宽度是否超过控件宽度
If b = True Then
ctl.FontSize = i '如果控件值超宽,则控件字号减小一个字号。
Exit For
End If
Next
End Function