Подскажите, как сделать так, чтобы при редактировании ячейки в dataGridView
, при вводе некорректных данных (например формат ячейки DATE, а вводятся буквы) выдавалось предупреждение?
А если вводится дата в формате 10122017, она переводилась бы в формат 10.12.2017.
База данных импортируется из SQLite.
Чтобы автоматически выдавалось предупреждение, достаточно задать нужный тип данных для привязанного значения.
Вариант с DataTable
:
DataTable dataTable; // поле формы
// Где-то в коде
dataTable = new DataTable();
// Задаём столбцу тип DateTime
dataTable.Columns.Add("Date", typeof(DateTime));
// Грузим в таблицу данные
dataTable.Rows.Add(DateTime.Now);
// Привязываем к гриду
dataGridView.DataSource = dataTable;
// Задаём отображаемый формат
dataGridView.Columns["Date"].DefaultCellStyle.Format = "dd.MM.yyyy";
Вариант с типизированной коллекцией:
public class Data
{
public DateTime Date { get; set; }
}
// Взять наиболее подходящую коллекцию.
// Может быть ObservableCollection, BindingList.
List<Data> data;
// Создаём и заполняем коллекцию данными
data = new List<Data> { new Data { Date = DateTime.Now } };
// Биндинг
dataGridView2.DataSource = data;
// Формат
dataGridView.Columns["Date"].DefaultCellStyle.Format = "dd.MM.yyyy";
Однако, такие "предупреждения" не удобны для пользователей.
Нужно использовать события CellValidating, CellValidated и вручную определять желаемое поведение.
По поводу перевода из одного формата в другой на лету. Всё реализуемо, но тут возможны конфликты с заданным форматом вывода. Думаю, нужно обрабатывать события CellFormatting и, возможно, EditingControlShowing - а далее работать с полученным текстбоксом.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем привет, помогите найти ошибку в вычислении факториалаПо условию задачи при num = 0, функция должна выдавать 1
Почему не выводится Alert? Понимаю, что замыкание, но почему не понятноКак его вывести? Спасибо!