| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 880 人关注过本帖
标题:求助!如何自动调整编辑框的字号以使其容纳不同字数的内容?
只看楼主 加入收藏
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:18 
求助!如何自动调整编辑框的字号以使其容纳不同字数的内容?
最近遇到一个问题,我想在一个固定大小的编辑框中显示备注字段的内容,有时字数多些,有时字数少些,同时要求在显示全部内容的情况下尽量用比较大的字号显示。我现在是用两个命令按钮来实现的,字数少时就增大字号,以使得编辑框不显得那么空,字数多的时候又要减小字号,以使得编辑框能显示出全部内容。但这样挺麻烦的,能不能自动调整字号来实现上述要求呢?
    我注意到有一个integralheight属性,本来以为可以通过它来实现,但我发现它只是通过调整编辑框的高度以使得编辑框中可见的最后一行能全部显示,而不是全部内容中的最后一行。
    还有一个TEXTHEIGHT方法,试了N次,在字符串中加入回车符以后,返回的值竟然没有任何变化!
    各位有什么好办法没有?望指教!
搜索更多相关主题的帖子: 如何 
2015-06-29 18:11
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
收藏
得分:0 
或者换个简单的问法:怎样判断编辑框中的文本没有全部显示出来呢?
2015-06-29 18:32
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
每种字号都有特定的宽度(象素),可以根据这个数据来计算。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-06-29 19:33
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
收藏
得分:0 
回复 3楼 hu9jj
相同字号的情况下,好象字体不同,所占用的像素也不一样。
2015-06-29 19:37
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
收藏
得分:0 
回复 3楼 hu9jj
另外就是折行的情况也比较复杂,有的情况下会将整个单词折到下一行,而上一行的字数与正常的字数就不一样了,这种算法恐怕难以准确地计算出来。
2015-06-29 19:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:3 
以下是引用w7802672在2015-6-29 19:41:25的发言:

另外就是折行的情况也比较复杂,有的情况下会将整个单词折到下一行,而上一行的字数与正常的字数就不一样了,这种算法恐怕难以准确地计算出来。

本身你的要求也比较特别!
汉字的宽度是一致的,英文字母有变宽和定宽两大类,你选择定宽的字体即可解决问题。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-06-30 06:09
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
以下是引用hu9jj在2015-6-30 06:09:08的发言:

 
本身你的要求也比较特别!
汉字的宽度是一致的,英文字母有变宽和定宽两大类,你选择定宽的字体即可解决问题。
说的是
2015-06-30 07:33
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
在TEXT的 KeyPress或者 InteractiveChange中写上
IF LEN(ALLTRIM(THIS.Value))>20 &&长度大于20时,用9号字体,TEXT高50,其他的按这个思路
   THIS.FontSize=9
   THIS.Height =50
   THIS.SelStart =LEN(ALLTRIM(THIS.Value))
ELSE       &&长度小于20时,用12号字体,TEXT高25
   THIS.FontSize=12
   THIS.Height =25
   THIS.SelStart =LEN(ALLTRIM(THIS.Value))  &&加这行,和不加这个,有变化的哦,自己测试看看
ENDIF



[ 本帖最后由 mywisdom88 于 2015-6-30 09:37 编辑 ]
2015-06-30 09:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
有难度,无必要的话还是顺其自然。单是算出编辑框内有显示几行也不容易,以前好象有贴讨论过。
2015-06-30 12:26
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
有难度?我觉得?按楼主的要求没什么难度啊?
EDIT框?不就是和TEXT一样吗?无非就是读EDIT框内的字符多少?当字符大于自己定义认为比较多的时候,就改变字体大小?由于楼主的EDIT框是固定大小的,那就你看看,你满字的时候,是多少个字?字体是多大?比如你固定EDIT框,满字的时候是最多200个字,字体是12号,当你超过200个字时,你就改变字体大小,至于从12号改为多少号?那就要慢慢算了。
可以按比例算?200字,字体12,300字,字体11?还是10?还是9?你就要自己测试才知道了。

2015-06-30 13:55
快速回复:求助!如何自动调整编辑框的字号以使其容纳不同字数的内容?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023292 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved