#c# #visual-studio #winforms #datagridview
#c# #visual-studio #winforms #datagridview
Вопрос:
У меня большая проблема. Я столкнулся с этим при разработке приложения Windows-form. Я разместил datagridview с 4 столбцами и несколькими строками в форме. Когда я нажимаю на заголовок первого столбца, он выдает сообщение об ошибке. Я также прикрепил это. Я попытался указать условие для события «CellClick», чтобы не вызывать проблемы. К сожалению, он не решил это. Странно, потому что это явление ошибки отсутствует в дополнительных столбцах. Что бы я ни пробовал и ни изменял, я не мог устранить. Sor Код обработчика события CellClick:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1)
return;
}
Комментарии:
1. пожалуйста, опубликуйте сведения об исключении на английском языке, lol
2. Извините. «Тип объекта может быть только DateTime».
3. хорошо, что почти кажется, что происходит что-то еще… Ваш код выглядит нормально. Может быть, поместить точку останова в обработчике щелчка и просмотреть код? это единственный код в DellContentClick? Я полагаю, что есть также CellDoubleContentClick или что-то в этом роде — вы используете это?
4. Я попробовал этот метод, значение переменной было равно -1. К сожалению, событие CellDoubleContentClick также не было успешным. И событие DellContentClick я не нахожу.
5. ну, без дополнительной информации мы ничего не можем сделать на самом деле…
Ответ №1:
Я подозреваю, что первый столбец используется для отображения значений DateTime и что DataGridViewColumn.Свойство SortMode установлено на DataGridViewColumnSortMode.Automatic
. Когда вы нажимаете на заголовок столбца, DGV пытается отсортировать столбец.
Проблема в том, что в одной или нескольких строках значение, хранящееся в ячейке [0], не является ни значением DateTime, ни null. Вот почему вы получаете сообщение об ошибке:
Система.Исключение ArgumentException: ‘Объект должен иметь тип DateTime.’
Если вы не хотите, чтобы столбец автоматически сортировался, установите для свойства SortMode значение DataGridViewColumnSortMode.NotSortable
или DataGridViewColumnSortMode.Programmatic
.