以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口根据屏幕大小自动缩放 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25138) |
-- 作者:ramen -- 发布时间:2012/11/1 13:13:00 -- 窗口根据屏幕大小自动缩放 我想请问一下,我在大显示屏设计出来的窗体,在用小显示屏的电脑上打开,结果窗体的有些部分被遮住了,可不可以让它根据比例自动缩放大小呢? |
-- 作者:lin_hailun -- 发布时间:2012/11/1 14:20:00 -- 下面的是通用的缩放代码。放到afterload中 For Each c As Winform.Control In e.Form.Controls c.Left = c.Left * (SysInfo.ScreenWidth / e.Form.Width) c.Top = c.Top * (SysInfo.ScreenHeight / e.Form.Height) c.Width = c.Width * (SysInfo.ScreenWidth / e.Form.Width) c.Height = c.Height * (SysInfo.ScreenHeight / e.Form.Height) Next |
-- 作者:ramen -- 发布时间:2012/11/2 7:56:00 -- 我试了好几次,还是不太行,我试了用锚定和停靠,但是窗口还是看不全。 |
-- 作者:lihe60 -- 发布时间:2012/11/2 7:59:00 -- 以下是引用ramen在2012-11-1 13:13:00的发言:
我想请问一下,我在大显示屏设计出来的窗体,在用小显示屏的电脑上打开,结果窗体的有些部分被遮住了,可不可以让它根据比例自动缩放大小呢? 我也遇到这样的烦恼。 |
-- 作者:狐狸爸爸 -- 发布时间:2012/11/2 8:10:00 -- 在标准的分辨率下设计好窗口,调整好位置,善用锚定和停靠。 你office 和 foxtable,在任何分辨率下都可以正常使用 |
-- 作者:lihe60 -- 发布时间:2012/11/2 8:35:00 -- 以下是引用狐狸爸爸在2012-11-2 8:10:00的发言:
在标准的分辨率下设计好窗口,调整好位置,善用锚定和停靠。 你office 和 foxtable,在任何分辨率下都可以正常使用 有时候一个控件会盖住另外一个控件的。 |
-- 作者:狐狸爸爸 -- 发布时间:2012/11/2 8:48:00 -- 以下是引用lihe60在2012-11-2 8:35:00的发言:
有时候一个控件会盖住另外一个控件的。
举例说明? 如果有,也是锚定没有设置好,可以随时修正。 |
-- 作者:lin_hailun -- 发布时间:2012/11/2 9:09:00 -- 把项目弄上来,窗口就行,我们帮你改。 |
-- 作者:dingqiaoren -- 发布时间:2012/11/2 10:32:00 -- 狐爸,这个问题其实论坛里面早就有人回答了,就一段代码,窗口就可以自适应任何屏幕大小,本来我复制了这段代码的,可是前两天我孩子把我的文本给删除了,于是想找那个帖子,结果在论坛上怎么也找不到,。
那段代码确实无敌,我试过N次都没有问题,不知道论坛里面哪位大神可以提供? |
-- 作者:lin_hailun -- 发布时间:2012/11/2 11:04:00 -- 以下是引用dingqiaoren在2012-11-2 10:32:00的发言:
狐爸,这个问题其实论坛里面早就有人回答了,就一段代码,窗口就可以自适应任何屏幕大小,本来我复制了这段代码的,可是前两天我孩子把我的文本给删除了,于是想找那个帖子,结果在论坛上怎么也找不到,。
那段代码确实无敌,我试过N次都没有问题,不知道论坛里面哪位大神可以提供? 你是不是想找这个? msgbox("显示器分辨率为:" & SysInfo.ScreenWidth & " * " & SysInfo.ScreenHeight) msgbox("可用工作区大小:" & SysInfo.WorkingAreaWidth & " * " & SysInfo.WorkingAreaHeight) e.Form.BaseForm.Width = SysInfo.ScreenWidth e.Form.BaseForm.Height = SysInfo.ScreenHeight --------------------------------------------------------- 然后这样? For Each c As Winform.Control In e.Form.Controls c.Left = c.Left * (SysInfo.ScreenWidth / e.Form.Width) c.Top = c.Top * (SysInfo.ScreenHeight / e.Form.Height) c.Width = c.Width * (SysInfo.ScreenWidth / e.Form.Width) c.Height = c.Height * (SysInfo.ScreenHeight / e.Form.Height) Next ------------------------------------------------------------------------ 建议还是用主窗口吧。然后,不要设置锚定…… [此贴子已经被作者于2012-11-2 11:04:10编辑过]
|