如何控制所有控件的大小随屏幕分辨率的大小改变而改变

xing0091 2003-01-25 09:20:51
最近写程序时,遇到分辨率的问题,虽然可以用screen取值,但需要每个控件都得定义,太麻烦了,能不能统一定义一类控件的大小,如果能同时定义所有的就更好了,请各位大虾指教,谢谢。
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你的问题,小弟以前就关注过,找着一些控件,不太理想。
据说这个问题微软也没有很好的解决方案。
关注此问题!!!!!!!!!!!!!!!!!!!!!!!!!
绝缘 2003-02-08
  • 打赏
  • 举报
回复
你的这个问题在《电脑爱好者》上有介绍的!要用到一定的算法!!!
FreshAir 2003-02-08
  • 打赏
  • 举报
回复
利用Me.Controls对象来遍历每一个控件,其中,
Me.Controls.Count 控件总数
Me.Controls(i) 第i个控件

处理概要如下。

在Form_Load事件中,
1.计算比例:
(1)定义设计时屏幕的分辨率,即屏幕的设计宽度和高度;
(2)取得当前屏幕的分辨率, 即屏幕的当前宽度和高度;
(3) X方向比例 = 屏幕的当前宽度 / 屏幕的设计宽度
(4) Y方向比例 = 屏幕的当前高度 / 屏幕的设计高度
2.计算Form及各个控件的尺寸:
(1) Form的新宽度 = Form的初始宽度 * X方向比例
(2) Form的新高度 = Form的初始高度 * X方向比例
(3) 控件的新宽度 = 控件的初始宽度 * X方向比例
(4) 控件的新高度 = 控件的初始高度 * Y方向比例
(5) 控件的左上角X坐标 = 控件的左上角初始X坐标 * X方向比例
(6) 控件的左上角Y坐标 = 控件的左上角初始Y坐标 * Y方向比例

注意:对于Grid控件,各列的宽度也需要按类似方法,重新计算。



FreshAir 2003-02-08
  • 打赏
  • 举报
回复
利用Me.Controls对象来遍历每一个控件,其中,
Me.Controls.Count 控件总数
Me.Controls(i) 第i个控件

处理概要如下。

1.定义Form级变量和数组,用于保存Form及所有控件的初始尺寸;
2.在Form_Load事件中,
(1)保存Form的初始宽度和高度;
(2)保存每个控件的左上角坐标、宽度、高度;
3.在Form_ReSize事件中,重新计算各个控件的尺寸。
(1) X方向比例 = Form的当前宽度 / Form的初始宽度
(2) Y方向比例 = Form的当前高度 / Form的初始高度
(3) 控件的新宽度 = 控件的初始宽度 * X方向比例
(4) 控件的新高度 = 控件的初始高度 * Y方向比例
(5) 控件的左上角X坐标 = 控件的左上角初始X坐标 * X方向比例
(6) 控件的左上角Y坐标 = 控件的左上角初始Y坐标 * Y方向比例

注意:对于Grid控件,各列的宽度也需要按类似方法,重新计算。


liushanyu 2003-02-07
  • 打赏
  • 举报
回复
先算出变化率,作为参数传入一全局函数,每个控件的尺寸乘参数,就得一个一个的。
xing0091 2003-02-07
  • 打赏
  • 举报
回复
我用了20个label控件,如何同时改动他们的大小,不用写重复的代码
zyl910 2003-01-25
  • 打赏
  • 举报
回复
在ReSize事件中处理控件的坐标

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧