|

分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 377671771 于 2015-2-14 05:37 编辑
真的超好用哦,这个是高级表格的自动调列宽,不是超级列表框。
四行代码看着很简单,但是通过它就能写出很多全自动高级功能。
只需四行代码!两行变量声明不算哦,因为完全可以不要那两个变量的。
简单四行代码,能够实现高级功能。怎么写高级功能那就要看你的了,这是核心代码。
并且全网搜索,除了我这个,就只有易官方论坛10年前的两个帖子是关于,自动调整高级表格列宽功能的。
绝对原创,易官方论坛也是我发的。
如果你的软件在使用高级表格的话,用这个写法将会使文本数据更美观!
说说为什么要单独给高级表格自动调列宽:
因为在高级表格上,用普通的写法根本没法实现完美的自动调列宽,即使用易官方论坛的两个源码 模块 也会在文字后面出现空白长尾巴。
易官方论坛的上面那两个帖子年代久远到有将近10年之久,一个是源码,一个是模块,但是实际用到显示出的效果就是会在文字后面出现空白长尾巴,而且是文本越长,尾巴越长。全网搜索除了这两个帖子,其它就没有找到好的方法了。而我的这四行代码就完美解决了,调列宽后带有空白尾巴的问题。
高级表格的文本数据在显示出来后,看着是和其它窗口组件字体大小一样大小,但其实他的字体大小是和其它组件字体大小不一样的。窗口组件的字体基本都默认的是“宋体”,字体尺寸基本都默认的是9;而高级表格的默认字体不但不是“宋体”,而且字体尺寸也不是9!这就是为什么,在不换字体和尺寸的情况下,怎么调列宽度怎么乱的原因。
通过修改高级表格的字体与大小尺寸,在通过画板得到文本实际的长宽度,然后在通过一定的数字比例计算,就能够将高级表格的“显示出来后的文本”和单元框完美显示,没有尾巴,不会被覆盖。
通过这几行核心代码就能够写出【导入或读取数据后,自动调全部的文本数据单元框列宽】功能,不会因为数据文本长度不一导致很多字被覆盖看不到。看这个精易编程助手的高级表格,的截图就知道我说的文字看不到是什么意思了。
所谓的自动调列宽,就是将单元框的列宽度,根据文本的长度自动调整到宽度相同,将文字全部显示出来。如果文本很长的话,可以加个判断,限制住最大的列宽就行了。
更详细的说明:
' 画板.字体.字体名称 = “宋体” ' 画板默认就是“宋体”可以不写,若换其它字体的话,就必须要画板和高级表格字体一致。
高级表格.置字体名 (行, 列, , , “宋体”) ' 必须写出来,高级表格默认的字体不是宋体。
高级表格.置字体尺寸 (行, 列, , , 四舍五入 (画板.字体.字体大小 × 1.33, )) ' 这个1.33只测试了“宋体”和“黑体”自动换算列宽完美显示,只测试了“微软雅黑”不适合。
高级表格.置边距 (行, 列, , , 0)
高级表格.置列宽 (列, 画板.取宽度 (高级表格.取数据(行, 列)) + 2) ' 列宽最后的“2”意思是要大于单元格边距1到3,否则最后一个字会和框线重合。
' 如果使用的字体不是宋体和黑体,就要自己算一下。应该有很多个字体适合1.33的,我没有测试。
' 上面1.33的算法很简单,先将高级表格“显示出来后”的字体大小 调到和画板字体大小一致了,然后用高级表格的“实际字体大小”除以画板字体大小。
' 为什么要先手动调呢?因为高级表格显示出来后的字体大小,是和其它的窗口组件的字体大小不一样!
高级表格自动调整列宽-字体大小换算方法.rar
(2.27 KB, 下载次数: 1287)
|
评分
-
查看全部评分
|