Извините, что отвечаю на старую ветку, но это единственное место, где я могу найти, где кто-то адаптировал код MS так же, как и я. В ответ на RThomas я сделал это, но я нахожу проблемы с использованием TimeColumn при привязке к данным. Я использую его для ввода расписания сотрудников, поэтому элемент даты не виден, только время. Когда я ввожу данные, все работает нормально, но когда я пытаюсь редактировать данные, что-то идет не так.
Значение ячейки является правильным в событии OnValueChanged (с помощью Debug я вижу значение Me.Value), но в событиях DataGridView.CellEndEditing или CellValidated значение показывает текущую дату и отредактированное значение времени. Как ни странно, если пользователь перемещается в другую ячейку, затем обратно в TimeCell, затем в другую ячейку снова значение корректно, но после первоначального редактирования дата неверна.
Я рассмотрел все различные события, но, похоже, что-то среднее между значением, которое редактируется в DataGridView и фиксируется в Datatable, привязанном к DataGridView.