У меня есть сетевое представление в проекте C # Winform.Это сетевое представление используется для вставки значений в базу данных.Каждый столбец соответствует соответствующему столбцу БД.
Один из столбцов является столбцом DateTime.Я хочу «подтвердить» эту дату, чтобы убедиться, что она в правильном формате.В идеале вы должны покинуть ячейку, и она конвертирует ее в формат даты и времени, который я выберу.
Я использовал серию событий, чтобы попытаться создать эту функцию, но у меня были проблемы.Проблема, с которой я постоянно сталкиваюсь, заключается в том, что при возникновении события значение еще не сохраняется в ячейке.Поэтому, когда я делаю что-то вроде этого, например:
private void Grid_Modify_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (Grid_Modify.Columns[e.ColumnIndex].Name == "DateTime")
{
Grid_Modify[e.ColumnIndex, e.RowIndex].Value =
Convert.ToDateTime(Grid_Modify[e.ColumnIndex, e.RowIndex].Value).ToString("YYYY-MM-DD hh:mm:ss");
}
}
Проблема в том, что значение, которое оно преобразует в дату-время, является исходным значением ячейки, а не новым значением, которое я только что ввел.Я предполагаю, что это потому, что событие запускается до того, как обновляется значение ячейки.
Вопрос: как лучше всего форматировать дату, когда я изменяю ее значение?
Другие событияЯ пробовал: CellLeave, CellValueChanged, CellValidated и CellEndEdit.
ПРИМЕЧАНИЕ. Событие CellValueChanged было единственным событием, которое фактически могло получить новое значение ячейки, однако оно попадает в бесконечный цикл, когда я изменяюзначение в обработчике события.