Powinieneś zawsze przesłonić OnLoad(). Korzystanie z wydarzenia jest właściwe tylko wtedy, gdy klasa zainteresuje się wydarzeniem. Do czego służą wydarzenia. Inna klasa zainteresowana zdarzeniem Wczytaj jest bardzo rzadka, tylko bardzo przydatna do robienia okien.
Nadal jednak ładowanie działa dobrze z projektantem, a programiści VB6 są z nim bardzo dobrze. To nie jest strasznie źle, wpadniesz tylko w kłopoty, gdy zaczniesz dziedziczyć formularz, a kod nie będzie działał we właściwej kolejności.
Większość kodu, który teraz zostanie wstawiony do zdarzenia Load, naprawdę należy do konstruktora. Potrzebujesz tylko OnLoad, jeśli:
- Musisz znać dokładny rozmiar i położenie okna. OnLoad jest najlepszy, tworzony jest uchwyt okna i stosowane są preferencje użytkownika (tytuł i rozmiar ramki), a formularz został przeskalowany zgodnie z poleceniem właściwości Form.AutoScaleMode. Okno nie jest jeszcze widoczne, bardzo dobry czas na przeniesienie okna w inne miejsce lub ustawienie elementów sterujących dla dzieci.
- Masz kod, który potrzebuje własności Handle. To subtelne, nie zawsze możesz powiedzieć. Posiadanie takiego kodu w konstruktorze jest niezdrowe, okno zostaje utworzone przed ukończeniem konstruktora. Zwykle kończy się dobrze, ale może sprawić, że tworzenie formularza będzie bardzo powolne. Łatwe do zdiagnozowania z okna Call Stack.
- Aby uniknąć błędu w implementacji MDI. Jeśli utworzysz dziecko MDI w konstruktorze macierzystym, otrzymasz zduplikowane glify widoczne po zmaksymalizowaniu potomka. Zamiast tego utwórz dziecko w aplikacji OnLoad.
zobaczyć również https://stackoverflow.com/questions/2521322/what-setup-code-should-go-in-form-constructors-versus-form-load-event – DaveInCaz