中国开发网: 论坛: 程序员情感CBD: 贴子 539806
haitao
【技术贴,Form Resize时控件位置、宽度的自动调整】控件简化为“Label:[Edit_____]”这样的情形
【技术贴,Form Resize时控件位置、宽度的自动调整】控件简化为“Label:[Edit_____]”这样的情形
同一行的Edit们都按比较调整宽度,Edit和Label的left都适当变化,如:
123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
Label1:[Edit1_____________] Label2:[Edit2___________________________________________] Label3
宽度:20 宽度:50
窗体(parent)的宽度:100

如果窗体(parent)的宽度变为了:80
Label1的left和宽度都不变;
Edit1的left不变
Edit1的宽度应该变为:20*(20+50 + (80-100))/(20+50)=100/7==14;
Label2的left应该变为:原来的left+(14-20)
宽度不变;
Edit2的left应该变为:原来的left+(14-20)
Edit2的宽度应该变为:50*(20+50 + (80-100))/(20+50)=250/7==36;
Label3的left应该变为:原来的left+(14-20)+(36-50)
宽度不变

这样好像很合理,但是如果有2行,就可以看出不合理的地方了:
123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
Label1:[Edit1_____________] Label2:[Edit2___________________________________________] Label3
宽度:20 宽度:50
123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
Label5:[Edit5_____________] Label6:[Edit6_________________________________] Label7
宽度:20 宽度:40

如果窗体(parent)的宽度从100变为了:80
Label5的left和宽度都不变;
Edit5的left不变
Edit5的宽度应该变为:20*(20+40 + (80-100))/(20+40)=80/6==13; <--这里!原来上下对齐的Edit1和Edit5居然不对齐了!
。。。。。。

看来这种变化方式不行。。。。。。。
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录