Я много искал для этой ошибки, о котором уже задал тот же вопрос, но он не решает мою проблему. Я получаюКак преобразовать DataGridViewComboBoxCell в DataGridViewTextBoxCell
Операции недопустима, так как это приводит к возвратному вызову функции SetCurrentCellAddressCore.
Сценарий У меня есть datagridview
с TextboxColumn
Я использую CellBeginEdit
, чтобы преобразовать его в ComboBoxColumn
, и после CellValidate
я снова изменить ComboBoxColumn к TextboxColumn. Коды работают для всех. но получение указанной ошибки в точной строке e.RowIndex = 2
вызывает это исключение, но другие дозы строк не показывают ошибку. если я опустил эту ошибку и продолжаю, то значение e.RowIndex = 2 будет пустым, а значение других строк будет работать.
Вот код CellBeginEdit
if (e.ColumnIndex == 2 && e.RowIndex >= 0)
{
try
{
string s = Convert.ToString(_dgvCoarseAggegateTest[e.ColumnIndex, e.RowIndex].Value);
string s1 = Convert.ToString(_dgvCoarseAggegateTest[e.ColumnIndex, 0].Value);
DataGridViewComboBoxCell c = new DataGridViewComboBoxCell();
string _SizeName = _cGetParrent._mGetParentCellValue(ref _dgvCoarseAggegateTest, e.RowIndex, 1);
_mFillSieveSizeGridCombo(_mGetMetalSizeID(_SizeName), ref c); // Here My Combo Will GetValues from SQL and it Returning Value
_dgvCoarseAggegateTest[e.ColumnIndex, e.RowIndex] = c; // Heres the error When e.RowIndex == 2 and if e.RowIndex != 2 then no error
_dgvCoarseAggegateTest[e.ColumnIndex, e.RowIndex].Value = s;
_dgvCoarseAggegateTest[e.ColumnIndex, 0].Value = s1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Как решить эту проблему.
UPDATE: не Нет строк там пользователь добавит новую строку и выберите значения, базовая вещь я хочу показать комбо и заполнить значения из базы данных, значения заполнения, зависит от состояния, поэтому каждый раз, когда новые значения приходят,
Примеры данных
testTable
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
в column1 я добавил один комбо со значениями от 1 до 9, в _mFillSieveSizeGridCombo
Я передаю идентификатор к SQL Server 2008 и заполнения комбо с использованием Combo.Item.Add(x)
метода.
Странно. Я не могу воспроизвести. Сколько строк есть? Является ли значение в строке 2 отличным от других? Можете ли вы изменить его на тот, который работает? это происходит с мышью и с F2? (Я только догадываюсь, очевидно,). Что-нибудь особенное происходит с ячейкой c в mFillSieveSizeGridCombo из-за его rownumber? – TaW
@taw нет строки там пользователь будет добавлять новую строку и выбирать значения, базовая вещь - я хочу показать комбо и значения заливки из базы данных, значения заполнения зависят от состояния, поэтому каждый раз, когда появятся новые значения, –
Если вы прокомментируете вызов '_mFillSieveSizeGridCombo' элементов ячейки не заполняется. но происходит ли ошибка? – TaW