Tracy,
But then you must be dealing with controls that are not bound to the table, because the table has to be opened by the DE or by form.Load() so that the controls can bind as they instantiate.
Form.Init() happens
after all the controls.Init()s have fired.
In general all a container's Init() fires after all of it's contained objects are instantiated and ready to go, so the container can talk to it's kids and hopefully get a meaningful dialog established, but you know kids don't always listen to their parent. *g*
Positioning the table setup before or after dodefault() in the form.Init() really only controls when things happen relative to the code you have written in the Init() method of your form classes along its inheritance hierarchy.
>I sometimes do this. If I setup the table in the init then it goes before the dodefault(). Then after the dodefault() I assign the value to the form property. Of course that typically requires a refresh following...