嗨我使用下面的代码来增加表单的所有控件的大小,当表单最大化为锚点时,停靠和自动调整大小不会损害控件的大小。
Private Sub PaForm_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Maximized Then
count = count + 1
If count <= 2 Then
Dim RW As Double = (Me.Width - CW) / CW ' Ratio change of width
Dim RH As Double = (Me.Height - CH) / CH ' Ratio change of height
For Each Ctrl As Control In Controls
Ctrl.Width += CInt(Ctrl.Width * RW)
Ctrl.Height += CInt(Ctrl.Height * RH)
Ctrl.Left += CInt(Ctrl.Left * RW)
Ctrl.Top += CInt(Ctrl.Top * RH)
Next
For Each c As Control In Panel1.Controls
c.Width += CInt(c.Width * RW / 4)
c.Height += CInt(c.Height * RH / 4)
c.Left += CInt(c.Left * RW / 4)
c.Top += CInt(c.Top * RH / 4)
Next
End If
End If
当我恢复时,控件的大小是相同的,并且不适合窗口。
您能否建议如何减小尺寸并将所有控件置于正常状态。
表格最大化:
恢复后:
预期:
答案 0 :(得分:2)
将控件添加到TableLayoutPanel,如果要填充,它将调整控件的大小。
答案 1 :(得分:0)
通过查看屏幕截图,现在可以更加轻松地了解您的需求。
在这种情况下,我同意your first answer - 开始使用TableLayoutPanel。对于您的两列组合框,您可以选择一个(宽度自动或固定标签,%为文本框),A01 - H12按钮 - 另一个,面板#3“控制OK”复选框和其余部分。
您可以将一个TableLayoutPanel用于所有内容,但随后需要使用列范围,如果您决定扩展任一区域,此解决方案就不那么灵活了。