...
DataGridViewTextBoxColumn timeLen = new DataGridViewTextBoxColumn();
timeLen.DataPropertyName = "timeLen";
...
gridView.CellFormatting += new DataGridViewCellFormattingEventHandler(timeLenFormat);
...
void timeLenFormat(object sender, DataGridViewCellFormattingEventArgs args)
{
if (args.ColumnIndex == timeLen.Index)
{
TimeSpan span = TimeSpan.FromDays((double)args.Value);
args.Value = getTwoChars(span.Hours) + ":" + getTwoChars(span.Minutes) + ":" + getTwoChars(span.Seconds);
args.FormattingApplied = true;
}
}
private static string getTwoChars(int p)
{
return p < 10 ? '0' + p.ToString() : p.ToString();
}
DataGridView. Редактирование отформатированной ячейки.
Для отображения данной ячейки использую событие CellFormatting:
Код:
Отображать пожалуйста, но как это редактировать? То есть, мне нужно событие которое позволит мне сделать обратное преобразование из строки к double. До CellEndEdit дело не доходит, обрывается сообщением: "Входная строка имела неверный формат".
Глянул. Чего искал не нашёл. Проблем с записью в базу у меня и так нет. Стандартного FormatProvider-а для данного случая тоже нет. Как написать свой - не знаю, хотя это тоже было бы вариантом.
тут еще посмотрите
вот