以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]屏幕分辨率问题,用自动调整方法提示:算法溢出!附程序及截图! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79321) |
||||
-- 作者:jwt -- 发布时间:2015/12/29 8:17:00 -- [求助]屏幕分辨率问题,用自动调整方法提示:算法溢出!附程序及截图! 如题
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/29 9:13:00 -- 停靠窗口判断下 If e.Form.Visible = True Then For Each c As Winform.Control In e.Form.Controls c.Left = c.Left * (e.Form.Width / vars("width")) c.Top = c.Top * (e.Form.Height / vars("height")) c.Width = c.Width * (e.Form.Width / vars("width")) c.Height = c.Height * (e.Form.Height / vars("height")) Next vars("width") = e.Form.width vars("height") = e.Form.height End If 控件太密集,按比例缩放后效果不是很好,建议还是固定大小好了
|
||||
-- 作者:大红袍 -- 发布时间:2015/12/29 9:22:00 -- If vars("width") <> Nothing Then For Each c As Winform.Control In e.Form.Controls c.Left = c.Left * (e.Form.Width / vars("width")) c.Top = c.Top * (e.Form.Height / vars("height")) c.Width = c.Width * (e.Form.Width / vars("width")) c.Height = c.Height * (e.Form.Height / vars("height")) Next vars("width") = e.Form.width vars("height") = e.Form.height End If |
||||
-- 作者:jwt -- 发布时间:2015/12/29 10:32:00 -- 但是经过测试,修改后的,代码,貌似就失去作用了,及时调整窗口大小,里面的控件也没跟着变化。 还有,判断下停靠窗口是否可用,如果可用再执行代码,原理是??百思不得解~
|
||||
-- 作者:大红袍 -- 发布时间:2015/12/29 10:34:00 -- 代码测试没问题。 |
||||
-- 作者:jwt -- 发布时间:2015/12/29 10:37:00 -- 哇~袍哥给的代码,刚看到,谢谢~~马上修改,么么哒~ |
||||
-- 作者:jwt -- 发布时间:2015/12/29 10:47:00 -- 虽然错误弹窗没了,但是.......如图:0.0 |
||||
-- 作者:jwt -- 发布时间:2015/12/29 10:53:00 -- 修改后与修改前的比较图 此主题相关图片如下:2.png 此主题相关图片如下:3.png |
||||
-- 作者:大红袍 -- 发布时间:2015/12/29 11:06:00 -- afterLoad事件,这样写一下
vars("width") = e.Form.width |
||||
-- 作者:jwt -- 发布时间:2015/12/29 11:20:00 -- 1、sizechanged代码不变,重新启动程序,依然是上述问题。 2、删掉sizechanged里的代码,重启程序,一切正常,但是我仍想保留在调整窗口大小时,里面的空间跟着变的功能,也就是第一条,求袍哥指点。
|