2014-03-01 86 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