我有一个表单,它通过设置AutoSize
为true和AutoSizeMode
为GrowAndShrink
来初始化其内容(UserControl
放置在位置0,0)。
初始化后,我希望表单控制并关闭自动调整大小,并使UserControl为Dock.Fill
.
问题是,当关闭AutoSize
,窗体恢复其以前的大小,而不是保持其当前的大小。我可以在关闭AutoSize之前存储Size,然后恢复它,但是你仍然会得到大小事件(你可以看到表单闪烁)。
有没有办法让窗体保持其当前的大小,而没有任何大小事件触发时关闭AutoSize
?
在关闭AutoSize属性之前尝试设置MinimumSize属性:
this.MinimumSize = this.Size;
this.AutoSize = false;
我有一个类似的问题-我希望表单在按下按钮时使用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