我有一个表单,通过将UserControl
设置为true并将AutoSize
设置为AutoSizeMode
,将表单初始化为其内容(GrowAndShrink
放置在位置0,0)。
初始化之后,我希望表单获得控制权并关闭AutoSizing并进行UserControl Dock.Fill
。
问题在于,当关闭AutoSize
时,表单会重新恢复其先前的大小,而不是保持其当前大小。
我可以在关闭AutoSize之前存储大小,然后恢复它,但你仍然可以获得大小调整事件(你可以看到表单闪烁)。
有没有办法让表单保持当前大小,并且在关闭AutoSize
时没有触发任何大小调整事件?
答案 0 :(得分:4)
在关闭AutoSize属性之前,请尝试设置表单的MinimumSize属性:
this.MinimumSize = this.Size;
this.AutoSize = false;
答案 1 :(得分: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
它有效,但它只是感觉笨重。