>>Seems to me that the proper meaning of sparse=.t. is "use default text1 whenever the cell doesn't have focus, and if text1 is not there, create it".
>
>Hi,
>
>Firstly I just noticed this is VFP9. I was using VFP8SP1. There, it seems, returning .F. from the .Text1.Init() *always* causes the form to fail to instantiate.
Worked for me - but I didn't try to remove it, and it was in a limbo (funny property values in the debugger). The form did instantiate.
And, I'm on VFP8 SP1 too... so we seem to observe different behaviors for some other reason.
>So, switching to VFP9, I see most of what you say - essentially a .Text1 control is created anytime there is not .CurrentControl on the column (and the behaviour when .Sparse=.T. is just an extension of this). I don't think there's any real difference whether .Text1 is removed in it's own Init() or later (just that it's still visible in the debugger in it's own Init). But the combination of .Remove("text1") and 'Return .F.' in it's init() will still stop the form instantiating...
I was doing this in column's init()... before it got visible. That could be another difference which may or may not matter. So we're at least clear that there's more to this than we've found so far.