2014-01-06 3 views
1

У меня есть столбец DataGridView, которые держат десятичные значения, я хочу, чтобы отформатировать его с 2-х знаков после запятойDataGridView DefaultCellFormat не работает для новых значений

myColumn.DefaultCellStyle.Format = "N2"; 

это работает при загрузке данных в DataSource, но когда я добавляю новые ЗНАЧЕНИЯ не. я должен сделать это вручную в случае CellEndEdit:

var result = int.TryParse(dataGrid[e.ColumnIndex, e.RowIndex].Value.ToString(), out test); 
if (result) 
{ 
    dataGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = test.ToString("N2"); 
} 

я могу сделать это в лучшую сторону?

ответ

1

Если вы установили свойство ValueType для столбца, вы получите правильное форматирование. Обратите внимание, что это свойство задается кодом и не отображается в конструкторе.

dataGrid.Columns[0].ValueType = typeof(decimal); 

Следите за исключением, хотя - если пользователь вводит символьные данные в ячейку, которая ожидает числовые данные, генерируется исключение. Подпишитесь на событие DataError, чтобы обработать это.

Смежные вопросы