[易语言源码]高级表格自动调整列宽-字体大小换算方法
高级表格自动调整列宽-字体大小换算方法本站下载地址:点击下载
解压密码:www.aiwanba.net
不知道有没有人发过这个方法,我百度老半天找到两个自动调列宽的帖子,但是都实际应用起来表现不太好呀。
而且那两个帖子年代久远到有将近10年之久。。。。05年的帖子。
然后就没有找到什么好的自动调列宽方法了。因为易论坛很卡,就没有在论坛搜索,而且铜币那么珍贵。。。。
我现在有个小软件真的很需要自动调列宽那样的功能,就自己琢磨,没想到
真是黄天不负苦心人呐,真就研究出来啦看图
其实也不能说是原创了,用到了近在眼前的画板方法。
只需四行代码!声明变量不算哦
是不是简单到令人发指!
关键就在于高级表格的实际显示出来后的字体大小,是与其它的窗口组件的字体大小不一样的!
源码以及说明:
.版本 2
.支持库 eGrid
.子程序 _高级表格_结束编辑
.局部变量 行, 整数型
.局部变量 列, 整数型
行 = 高级表格.取光标行号 ()
列 = 高级表格.取光标列号 ()
‘ 画板.字体.字体名称 = “宋体” ‘ 画板默认就是“宋体”可以不写,若换其它字体的话,就必须要画板和高级表格字体一致。
高级表格.置字体名 (行, 列, , , “宋体”) ‘ 必须写出来,可能高级表格默认的字体不是宋体。
高级表格.置字体尺寸 (行, 列, , , 四舍五入 (画板.字体.字体大小 × 1.33, )) ‘ 这个1.33只测试了“宋体”和“黑体”自动换算列宽完美显示,只测试了“微软雅黑”不适合。
高级表格.置边距 (行, 列, , , 0)
高级表格.置列宽 (列, 画板.取宽度 (高级表格.取数据 (行, 列)) + 2) ‘ 列宽要大于单元格边距1到3,否则最后一个字会和框线重合。
‘ 如果使用的字体不是宋体和黑体,就要自己算一下了。应该有很多个字体适合1.33的,我没有测试。
‘ 上面1.33的算法很简单,先将高级表格“显示出来后”的字体大小 调到和画板字体大小一致了,然后用高级表格的“实际字体大小”除以画板字体大小。
‘ 为什么要先手动调呢?因为高级表格显示出来后的字体大小,是和其它的窗口组件的字体大小不一样的!