6楼的代码忘记把变量也包含进去了,下面这样测试没有问题:
If e.Form.Width > 0 AndAlso e.Form.Height > 0 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