3

我有一个表单,它通过设置为 true 和to 来初始化其内容(UserControl放置在位置 0、0)。AutoSizeAutoSizeModeGrowAndShrink

初始化后,我希望表单能够控制并关闭 AutoSizing 并制作 UserControl Dock.Fill

问题是,当关闭时AutoSize,表单会恢复其先前的大小,而不是保持其当前大小。我可以在关闭 AutoSize 之前存储 Size,然后再恢复它,但是您仍然会收到调整大小的事件(您可以看到表单闪烁)。

有没有办法让表单保持其当前大小并且在关闭时不触发任何大小调整事件AutoSize

4

2 回答 2

4

在关闭 AutoSize 属性之前尝试设置窗体的 MinimumSize 属性:

this.MinimumSize = this.Size;
this.AutoSize = false;
于 2012-12-20T14:37:24.553 回答
0

我有一个类似的问题 - 我希望在按下按钮时使用 AutoSize 增大或缩小表单,然后返回允许用户手动调整它的大小。

目前我的解决方案是在按钮事件中:

    Me.AutoSize = True
    uiStopAutoSizeTimer.Start()

然后有一个单独的方法来关闭 AutoSize,并保持 AutoSize 在表单上使用的大小。

Private Sub uiStopAutoSizeTimer_Tick(sender As System.Object, e As System.EventArgs) Handles uiStopAutoSizeTimer.Tick
    Me.SuspendLayout()
    Dim tempSize = Me.Size
    Me.AutoSize = False
    Me.Size = tempSize
    uiStopAutoSizeTimer.Enabled = False
    Me.ResumeLayout()
End Sub

它有效,但感觉很笨拙。

于 2014-07-09T17:54:44.297 回答