You might think of the alternative of overriding the OnCellPaintmethod or handling the CellPaint event of your Custom Datagridviewcell class if that is possible (painting the value in view mode, then in edit mode, your user control will do the rest). However, if this is not possible or if you for some reason find that inconvinient, you will have to make your custom datagridviewcell that hosts the editing control implement theIDataGridViewEditingCell Interface so that it will be able to display the user control even in view mode. Before that see for one of the DataGridViewCell child classes, one of them might be useful to u to derive from instead of writing the code all over again. I had a Smilies field once that stored integers in the database corresponding to different smilies. In the editing mode, i had a custom user control to edit the value (showing a table with available smilies retreived from another table in the database). However, when i quit editing mode in the grid, the integer value is what appears instead of the smily i choose. So i derived my custom DataGridViewCell from DataGridViewImageCell with some modification so that the cell will display the image instead of just a number! For any further questions, feel free to post back here!
Hope this helps!