Я пытаюсь разместить замаскированное текстовое поле в столбце dataGridView. Предполагается, что пользователь вводит допустимые значения даты в формате дд/мм/год, и я следовал примеру здесь http://www.codeproject.com/Articles/26005/DataGridViewColumn-Hosting-MaskedTextBox
Однако у меня возникли проблемы с фрагментом кода ниже. У меня есть предварительно заполненные строки, и пользователь должен обновлять только столбец Date, который по умолчанию равен NULL в базе данных.
Когда я нажимаю на столбец, чтобы перевести его в режим редактирования, я получаю сообщение об ошибке
Указанный аргумент находится вне диапазона допустимых значений в строке
if (Value == null || Value is DBNull)
ниже проблемный фрагмент кода и скриншот снимка исключения
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
{
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
MaskedEditEditingControl editingControl = base.DataGridView.EditingControl as MaskedEditEditingControl;
if (editingControl != null)
{
if (Value == null || Value is DBNull)
editingControl.Text = (string)DefaultNewRowValue;
else
switch (Value.GetType().FullName)
{
case "System.DateTime":
DateTime dt = (DateTime)Value;
editingControl.Text = dt.ToString("dd-MM-yyyy hh:mm");
break;
case "System.String":
editingControl.Text = (string)Value;
break;
}
}
}