关于控件的AutoSize属性影响界面布局的问题解决

最近在修改一个我们公司台湾主公司的一个项目,作为大陆免费版本使用,在修改过程中碰到了个很奇怪的问题

在家庭财务分析页签位于第一个时 都很正常 可是。。。

在页签后面时 lable标签就错位了 实在不理解什么原因

后来想到AutoSize属性 有可能是它的原因 问了老大 查了资料之后 知道了其中的缘由

AutoSize:获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。

从说明中可以看出autosize会自动判断字体的大小 那么会不会是因为原来的字体和窗体的字体不匹配造成的呢

在查看了窗体和lable的字体之后 发现窗体的字体是"宋体" 而lable的字体是"SimSun-ExtB"

经过测试 在字体大小相同的情况下 SimSun-ExtB字体确实比宋体要打 也就是说lable控件的长度会更长

在修改了lable的autosize=false 然后也修改字体为宋体之后 效果正常了

可以只修改字体 也可以只修改autosize属性 但是还是都修改为好

总结:在Lable控件里 因为autosize默认为true 系统会在生成控件时  去另外处理控件里的字体和大小然后生成lable的大小 

所以在字体固定的时候 让autosize=false能减少系统对于控件的处理时间

而家庭页签为什么在第一个时不出现错位 我也说不出个所以然来 大概能明白跟autosize和字体有关 具体为什么待日后去研究吧。。。

有知道的也希望你能给我留言 不胜感激!!!

posted @ 2012-12-26 11:57  EleMMent  阅读(968)  评论(0编辑  收藏  举报