2014-09-25 6 views
1

У меня есть текст datagridviewcolumn, отображающий целое число.
Я установил свойство format colTextDefaultCellStyle.Format = "#,##0";.Разный формат для ячейки datagridview в режиме редактирования

Таким образом, число, которое отображается, получает тысячу разделителей.

В режиме редактирования я не хочу показывать тысячу разделителей.
Но я не могу понять, как это сделать. Это, например, не работает:

void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    DataGridViewCell cell = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex]; 

    if (e.ColumnIndex == colText.Index) 
    { 
     if (cell.IsInEditMode) cell.Style.Format = ""; 
     else cell.Style.Format = "#,##0"; 
    } 
} 

ответ

3

Вы должны применить фактическое форматирование, а затем установите e.FormattingApplied в True.

void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex == colText.Index) 
    { 
     DataGridViewCell cell = dgv.Item[e.ColumnIndex, e.RowIndex]; 

     if (cell.IsInEditMode) 
     { 
      e.Value = e.Value.ToString(); 
     } 
     else 
     { 
      e.Value = e.Value.ToString("#,##0"); 
     } 
     e.FormattingApplied = true; 
    } 
} 
+0

'e.FormattingApplied = TRUE;' нет необходимости в моем случае – Gerard

+1

также потому, что e.Value является объектом 'double' в моем случае это значение должно быть литой/преобразованы в два раза для метода' ToString («#, ## 0») ', чтобы быть доступным – Gerard