Hi!
Well, read following considerations from my exeriense on the topic, they might be helpful for you.
1. When adding new controls to column you also require to make them visible. Well, column handles many properties of the controm in it, but some things you still require to do.
2. When grid displays data, it uses column's control source. You're right, when column don't have one, it will take it automatically from the table or just disable column completely. Now, when displaying, it uses the frmatting of the column, not a formatting of the text box. This means that when you have sparse set to .T. and textbox have different appearence than column lines (fint, colors etc.), you will see different appearence for current row and other rows. When Sparse is .F., only textbox's appearence used, but I'm not sure if VFP uses other properties somewhere, for example, in the portion of column that have no rows (back color).
3. When you have DynamicCurrentControl... Well, this is somewhat tricky thing and usually related with refreshing. I tried a grid with column that contains 3 controls - 1 for displaying, 1 for editing and 1 special for filtering. A stuck with a problem that controls refreshed incorrectly - when you expect one control displayed, another displayed instead.
4. Recently I made a nice grid control. All worked ok but the back color of the edit box changed occasionally to the color appropriate to the current row highlighting instead to be white as usual. After some debugging I was ready to report a bug to MS that grid column changes edit box background color to the color currently used for column, that supposed to be a bug. However, last moment I looked into the class used for edit box and found that back color set there... So, check and double check again what happening when you debug. For example, when you switch to debugger, some events already firing, and code of these events may cause control to change in a strange way.
5. Sometimes use of another dynamic* property of column with function that just call refresh method of control could help. This is used for containers in the grid column to refresh value for each row. It seems you require the same for your control if it is not bound to the control source of column.
6. In your case you may try to bind your control to the memory variable. This way grid works correctly, at least I used this in my program for editing control.
Good luck!
Vlad Grynchyshyn
vgryn@softserve.lviv.ua
The professional level of programmer could be determined by level of stupidity of his/her bugs