Vb.net 如何在窗体显示之前调整其大小?

Vb.net 如何在窗体显示之前调整其大小?,vb.net,Vb.net,我有一个表单需要包含一些控件 控件是动态创建的,我事先不知道表单的大小 我正在加载事件中调整窗体的大小 除了加载表单时,它会在很短的时间内显示设计器创建的初始大小,而不是调整大小之外,其他一切都正常工作 这种行为让我有点不安。我尝试了性能布局(),但没有成功 是否有人知道如何在窗体显示前调整大小,以及在窗体显示时直接显示最终大小 Private sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Ha

我有一个表单需要包含一些控件

控件是动态创建的,我事先不知道表单的大小

我正在加载事件中调整窗体的大小

除了加载表单时,它会在很短的时间内显示设计器创建的初始大小,而不是调整大小之外,其他一切都正常工作

这种行为让我有点不安。我尝试了性能布局(),但没有成功

是否有人知道如何在窗体显示前调整大小,以及在窗体显示时直接显示最终大小

Private sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Size = new Size(500,600)
    Me.PerformLayout()
End Sub

改为尝试在sub new中调整大小。在初始化组件之后和控件动态加载之后,在窗体加载之前。

尝试以下操作:

Protected Overloads Overrides Sub OnLoad(ByVal e As System.EventArgs)
    MyBase.OnLoad(e)
    AddHandler Application.Idle, AddressOf onloaded
End Sub

Private Sub onloaded(ByVal sender As Object, ByVal e As EventArgs)
    RemoveHandler Application.Idle, AddressOf onloaded

End Sub
在表单加载中,你想做什么就做什么


valter

在构造函数中设置大小。(在
Me.InitializeComponents
)@Thomas Carlton之后,我意外地按了3-4次Enter键,对所有编辑表示抱歉。这可能不是最好的方法,但您可以将表单的
不透明度设置为0,然后在初始化所需内容并准备好显示表单后,只需将
不透明度设置为1构造函数有问题,您当然应该修复它。创建本机窗口太早了。实际上,看到这个窗口很难解释,在加载事件处理程序上设置断点时看到的调用堆栈窗口的内容将非常有用。请注意,硬编码窗口大小是非常不明智的,您会将窗口变成“视网膜”质量显示器上的邮票。这与常规事件处理程序有何不同?