设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2204|回复: 5
打印 上一主题 下一主题

[报表] 根据文本框大小来自动选择字体大小如何实现

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-12 18:05:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在做报表时想内容根据文本框大小来自动选择字体大小。谁知道能告诉下吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-11-13 10:24:16 | 只看该作者
没看懂,进入VBE界面,在语句中按下F1,看帮助文件。各项属性都还没了解清楚,又怎么看得懂?
3#
发表于 2011-11-12 19:28:07 | 只看该作者
4#
 楼主| 发表于 2011-11-12 19:46:59 | 只看该作者
有点深奥没看懂,能解释下吗?
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
5#
发表于 2011-11-15 10:52:25 | 只看该作者
本帖最后由 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

单位换算:
1英寸=1440缇
1英寸=72磅
6#
发表于 2011-11-14 21:45:15 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-14 14:01 , Processed in 0.097126 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表