以文本方式查看主题

-  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
--  [求助]屏幕分辨率问题,用自动调整方法提示:算法溢出!附程序及截图!
如题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者: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

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:jwt
--  发布时间:2015/12/29 10:53:00
--  
修改后与修改前的比较图
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2015/12/29 11:06:00
--  

afterLoad事件,这样写一下

 

vars("width") = e.Form.width
vars("height") = e.Form.height
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
End If


--  作者:jwt
--  发布时间:2015/12/29 11:20:00
--  
1、sizechanged代码不变,重新启动程序,依然是上述问题。
2、删掉sizechanged里的代码,重启程序,一切正常,但是我仍想保留在调整窗口大小时,里面的空间跟着变的功能,也就是第一条,求袍哥指点。