AFAIK they both work. I use one or the other depending on need. Sometimes I'll want the form not to be initialised depending on the status of some control or other on the form, and I need it to be initialised first. If so, I use the form's init to return .F., otherwise, I normally use the Load.
Alan
>>>Hi Chris,
>>>
>>>Since you want to check this stuff first thing ( i.e. in Load or BeforeOpenTables ), looks like you might want to do something like add a property to your base form class, something like "CancelFormLoad". Then in your procedures instead of returning a .T./.F. if your requirement fails, you can set the CancelFormLoad property to .T.. Then in the form Init, check this property like
>>>IF THISFORM.CancelFormLoad
>>> RETURN .F.
>>>ENDIF
>>>Returning .F. from the Init will stop the form from instantiating. You might want to work with this but you get the idea here.
>>>
>>>Bill
>>>
>>
>>You can return .F. from the Load event to prevent a form from being created.
>
>My understanding was that a return of .F. from the form Init was the proper way to accomplish this.