Yes, Peter is correct. The ParentFormLoading event is part of the IInitOnFormLoad interface implemented on the BusinessLayer class (it's also implemented on all of the list controls). The ParentFormLoading is not meant to be handled within the BO class itself (unless you have come code that always needs to be executed when the form loads, in which case, yes, you should use it

), it's meant for the form to handle the method to allow you to place your population code in it.
It's really 6 one way and 1/2 dozen the other... the ParentFormLoading on each BO is raised within the OnLoad of the form, right before the form's event is raised, so they are both equivalent. The only difference is that the Form's Load is a "catch-all" and is a good place to put a PopulateAllBOs() method that can be called in a refresh. The ParentFormLoading of the business object, since it's part of the IInitOnFormLoad interface gets raised according to the BO's InitializationPriority. So, if you've got 3 BOs and 2 lists, and you need to call BO1.Fill(), List1.Requery(), BO2.Fill(), List2.Requery, BO3.Fill(), in that order, then you'll want to use the ParentFormLoading event and set the InitializationPriority on each of the objects in to control the order in which the event fires for each of the 5 objects.