以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于窗体随电脑屏幕自适应的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84996)

--  作者:scofields
--  发布时间:2016/5/15 8:52:00
--  关于窗体随电脑屏幕自适应的问题
 红袍老师,上次那个窗体最小化复原后显示算术运算错误,搞得很揪心,昨天晚上,我把代码改成以下这样的,改成后,不会弹出算术运算错误,可窗体里的控件位置没有随电脑屏幕大小发生改变,还是那个位置。窗口是笔记本上设置的,运行在台式电脑,笔记本上显示效果很满意,台式电脑就不行了,你看这个问题怎么解决?一个星期了,一直解决不了啊!
If e.Form.Width = sysinfo.width AndAlso e.Form.Height =sysinfo.height 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
vars("width") = e.Form.width
vars("height") = e.Form.height

--  作者:Hyphen
--  发布时间:2016/5/15 14:09:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=84973

另外,这种方式在窗口多变形几次后位置就会失真,因为计算过程会产生精度丢失。

--  作者:scofields
--  发布时间:2016/5/15 18:56:00
--  
那有没没有好的方法?我在测试过程中确实发现此类问题,失真很严重。运行久了,失真就很明显。
--  作者:大红袍
--  发布时间:2016/5/15 21:30:00
--  
以下是引用scofields在2016/5/15 18:56:00的发言:
那有没没有好的方法?我在测试过程中确实发现此类问题,失真很严重。运行久了,失真就很明显。

 

没有了,你为什么要变换多次?不就是打开的时候变换一次而已吗?

 

或者你就固定窗口大小,这样就不会有问题了。


--  作者:scofields
--  发布时间:2016/5/15 22:05:00
--  回复:(大红袍)以下是引用scofields在2016/5/15 18:...
我怎么才能固定窗口大小啊?
--  作者:大红袍
--  发布时间:2016/5/15 23:30:00
--  
以下是引用scofields在2016/5/15 22:05:00的发言:
我怎么才能固定窗口大小啊?

 

也就是,设置窗口固定比如 500*300 的大小。