I would say that of the options you listed 1 and 3 are the ones to concentrate on; I probably wouldn't use Activate for any of the items you listed.
Now, as for choosing between Sub New() and Form.Load()...
If you are designing a form to be reused by others, I would follow the suggestions made by bloke above.
If the form is just for this project, I would use the following guidelines to decide which to use:
Use Sub New() - If the objects created or properties set could be useful when the form is instanciated but not yet shown
Use Form.Load() - If the objects created or properties set will not (or cannot) be used until the form is displayed
For instance, lets say we're going to call this form frmEditDetails and we are going to display it from the main form called frmMain. We might do step one from your list (retrieve values from the database) in Sub New() so that when we create the new instance of frmEditDetails, the data to display is available. Before we show the form, we may want to use other values of frmMain to decide what the RowFilter will be for the data to display. So by using Sub New() we can work with our form's data before we call Show().
In contrast, item 3 from your list (setting caption text) isn't relevant to a form that hasn't been displayed yet, so we can save that code for Form.Load().
That's my $0.02! |