Форматирование ячейки данных не сохраняется после редактирования пользователем? - PullRequest
1 голос
/ 22 июня 2011

у меня есть сетка данных со следующим форматированием ячейки

datagrid.rows[0].cells[0].Value =1;
datagrid.rows[0].cells[0].Style.Format ="#k";

это работает нормально, и результат будет 1k, однако когда пользователь отредактирует пример значения ячейки на 2, тогда форматирование ячейки не вступит в силу?

вопрос в том, как сохранить форматирование ячейки после редактирования пользователем?

спасибо

1 Ответ

2 голосов
/ 22 июня 2011

Я полагаю, вы не работаете с базовым источником данных. Вы вставляете DataGridViewRows вручную в DataGridView.

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

В вашем случае вам нужно обработать событие CellFormatting для DataGridView и установить там формат вашей ячейки:

void dataGridView1_CellFormatting(object sender,
                                  DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0 && e.RowIndex == 0)
    {
        // if the underlying type is int
        int value;
        if(e.Value != null && int.TryParse(e.Value.ToString(), out value))
        {
            e.Value = value.ToString("#k");

            /*** OR ***

            e.Value = value;
            e.CellStyle.Format = "#k";

            */
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...