Quale è un ultimo evento di usercontrol da attivare quando viene caricata l'applicazione/controllo? L'evento di carico?Winform - che è un ultimo evento di usercontrol per sparare
risposta
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.
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 - 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. –
@ 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). –
@Jon B: dimenticato di menzionare; buoni punti con quei due metodi ancora! :) –
Ultimo evento a cui sparare quando? Alla prima apparizione, all'arresto? Per favore specificare. –