Réponse acceptée !
Le constructeur est appelé dès que tu fais "new MyForm()", alors que le OnLoad est appelé au moment ou la Form est chargée pour être affichée la première fois -> il peut tres bien se passer bcp de choses entre ces 2 évènements (par exemple on pourrait imaginer une application qui va déclarer/instancier la liste des ces Forms à son démarrage, même si elle ne les affiches que beaucoup plus tard, voir même jamais si l'utilisateur ne rentre pas dans certaines fonctionnalités : dans ce cas, mettre le code dans le constructeur ou le OnLoad pourra avoir de l'importance).
Tu peux même imaginer des cas où tu peux être amené a instancier des Forms sans les afficher. De même certains méchanisme (la sérialisation par exemple) apelle implicitement le constructeur par défaut des classes qu'elles instancient (même si ç'est un mauvais exemple, car les forms ne sont pas sérialisable...).
Bref, l'instantiation d'une Form et son chargement avant le premier affichage sont (ou peuvent être) deux choses différentes.
Working as designed
www.nikoui.fr