2014-03-01 89 views
0

我有一个表单需要包含一些控件。如何在显示窗体之前调整窗体大小?

控件是动态创建的,我事先不知道窗体的大小。

我正在调整加载事件中的表单。

除了这样一个事实,一切都很有效,当表单加载时,它会在很短的时间间隔内显示由设计者创建的初始大小,而不是它调整大小。

这种行为让我有点困扰。我尝试PerformLayout()但这是不够的。

有没有人知道如何调整窗体的大小,然后显示,它直接显示最终大小?

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 
+2

在构造函数中设置大小。 (在Me.InitializeComponents后) –

+0

@Thomas Carlton,我不小心按下了Enter键3-4次,对所有的编辑感到抱歉。 –

+1

这可能不是最好的方法,但你可以将表单的“不透明度”设置为0,然后一旦你初始化了你需要的东西,并且表单准备好显示,只需将“不透明度”设置为1 – user959631

回答

0

尝试在sub new中调整大小。在初始化组件之后,以及在表单加载之前动态加载控件之后。

0

试试这个:

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

+0

这与常规事件处理程序有什么不同? – Neolisk