DataGridViewComboBox - отображать значение «InActive» в DataGridView. - PullRequest
0 голосов
/ 02 апреля 2009

У меня есть DataGridView, который содержит поле со списком (DataGridViewComboBoxColumn). Это поле со списком содержит набор значений настройки. Эти установочные значения могут быть деактивированы, так что в поле со списком отображаются только активные значения, однако существующие записи (записи), использующие неактивные значения, должны отображаться.

Я могу успешно зациклить элементы в сетке, и если запись имеет значение, которое больше не активно (то есть часть элементов DataGridViewComboBoxCell), я просто добавляю его к элементам для этого DataGridViewComboBoxCell.

Проблема:

Я не могу найти место для размещения этого кода так, чтобы я не получил страшное 'DataGridViewComboBoxCell, значение недопустимо.'

Например, я могу поместить этот код в событие Paint объекта DataGridView, и сетка отлично работает. Никаких проблем с редактированием / обновлением значений, а также никаких проблем с отображением (неактивное значение всегда отображается) ... Тем не менее, оно по-прежнему выдает «Значение DataGridViewComboBoxCell недопустимо». ошибка.

Вопрос:

Где можно добавить код (или как) добавить «неактивное» значение после добавления активных значений в поле со списком (DataGridViewComboBoxColumn), но до того, как записи будут связаны, чтобы избежать этой ошибки?

1 Ответ

1 голос
/ 30 апреля 2009

Как насчет того, чтобы просто отловить ошибку в datagridview и ничего не делать с ней.

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
   e.Cancel = true;
}

// Add code in user interface
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
...