Hi Hadya,
I would use the interactivechange event of the grid column's currentcontrol ,like textbox or combo, to change the foreground color. Anytime the grid's currentcontrol is edited the interactivechange event fires.
I would use a checkbox to perfrom the multi-select. If checkbox is checked,(e.g. .T.), then it is selected.
I would complete the grid using the Visual FoxPro IDE. After I had the form designed and working visually, I would examine it piece by piece to write the code to programmically recreate it. This could take awhile and would be kind of tedious. An alternative would be to make sure the grid control source was never closed, making it unnecessary to recreate the gird and form if that also is to be programmically created per the user request.