1 / 3
文档名称:

ESS窗体控件文字多少动态调整控件字体大小.doc

格式:doc   页数:3
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ESS窗体控件文字多少动态调整控件字体大小.doc

上传人:zhangbing32159 2014/9/19 文件大小:0 KB

下载得到文件列表

ESS窗体控件文字多少动态调整控件字体大小.doc

文档介绍

文档介绍:ESS窗体控件文字多少动态调整控件字体大小
我们在使用EXCELL时,能够使用“设置单元格格式”|“对齐”|“文本控制”,对文本框在预定义字体大小下不能显示所有文字时,有“缩小字体填充”选项,缩小字体后,文字就会全部显示。ACCESS窗体能否实现动态“缩小字体以显示所有文字”功能呢?
ESS报表实现“缩小字体以显示所有文字”的功能:是通过主体格式化事件实现的。代码如下:
pare Database
Option Explicit
F As Integer '字体大小
Private Sub Report_Load()
F = '在启动时先将需要改变的控件的正常字体保存起来
’这里假定Address是我们要动态调整字体大小的控件
End Sub
’然后在在报表主体格式化事件中对控件进行格式化
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
Dim cW As Double
= F '每次主体格式化时,先将字体设为正常大小
If < () Then
cW = ( - 100) / ()
= Int( * cW)
End If
End Sub
然而,上述代码并不能在窗体中实现。主要因为:一是窗体没有Format事件,二是窗体没有TextWidth方法。因此不能计算控件所有文字的总长度。
其实在窗体中有一个各节有“绘制(PAINT)”事件可以起到同样的作用。在窗体中,窗体节的控件是在“绘制”事件中格式化的。
可以按照以下思路,根据显示控件文字多少,动态调整控件(如文本框)字体大小。1、文字总长度磅值计算:在窗体中,可以直接使用字号(实际是磅值)作为一个文字的大小。控件大小与磅值的换算倍数为20。这时控件文字总长度可用len(控件名)*控件字体概算。2、新字体计算:使用控件长度/20得到长度的磅值,再用磅值除以字数,即得到新字体大小。因此,其实也可以将字体调大。只是字体调大后,控件的高度又可能装不下了。3、与报表不同情况的处理。报表中某控件绑定的字段,有多少记录,就有多少个最终显示的控件被格式化。窗体中则一个新记录也要使用控件,以便输入新记录。由于新记录,没有数据,只是显示一个样子,因此对这个新记录计算文字总长度会出现“找不到控件或字段”的错误。这里直接忽略即可。
下面以主体节中的文本框“textExt”(实际中用你需要调整的文本框代替),代码如下:
pare Database
Public textExtFontSize as i