2009-06-03 2 views

risposta

0

I controlli di Winforms non hanno un ciclo di vita nello stesso senso dei controlli di Webforms di asp.net. Gli eventi dell'interfaccia utente si verificano quando l'utente fa qualcosa per farli accadere.

8

Questo dipende molto da quando si parla della sua vita. Data la tua ipotesi su Load, parliamo durante la creazione/caricamento. In questa lista figurano alcuni eventi nell'ordine in cui sono stati sparati in un semplice controllo utente che ho creato per il test (collegato una serie di eventlisteners e stampato il nome dell'evento alla console):

HandleCreated 
Load 
Layout 
VisibleChanged 
Paint 

noti che layout , VisibleChanged e Paint non hanno strettamente nulla a che fare con la creazione del controllo; Layout e in particolare Paint possono essere o saranno sollevati in diverse occasioni durante la vita del controllo. Lo stesso vale per VisibleChanged che viene generato ogni volta che viene modificato il valore della proprietà Visible.

+1

+1 - mi hai battuto su di esso. Ho ottenuto lo stesso risultato: Paint è l'ultimo. Si noti inoltre che CreateControl si verifica tra HandleCreated e Load e PaintBackground si verifica prima di Paint. –

+0

@ Jon B: non esiste un evento PaintBackground, ma esiste il metodo OnPaintBackground protetto (che assomiglia molto al metodo di innalzamento degli eventi standard, ma che non genera alcun evento). In entrambi i casi, CreateControl e OnPaintBackground possono essere utilizzati solo all'interno del controllo utente, non da codice esterno (come il modulo che ospita il controllo). –

+0

@Jon B: dimenticato di menzionare; buoni punti con quei due metodi ancora! :) –