В настоящее время у меня возникают проблемы при попытке изменить порядок отображения данных после изменения значения ячейки. После изменения значения в определенном столбце я хочу использовать столбцы на основе этого нового значения. Однако это не совсем корректная сортировка.
Например, допустим, я начинаю с datagridveiw на картинке ниже.
Затем я внесу изменение в столбец «Линия» первой строки и перенумерую его в 8. В этот момент я хотел бы переместить строку 1 туда, где находится текущая строка 8is и все остальные строки будут перенумерованы.
Я реализовал следующий код для этого.
Dim OuterSourceRowIndex As Integer
Dim InnerSourceRowIndex As Integer
If e.ColumnIndex = 0 Then
For Each rowOuter As DataGridViewRow In dgvReceive.Rows
For Each rowInner As DataGridViewRow In dgvReceive.Rows
OuterSourceRowIndex = rowOuter.Index
InnerSourceRowIndex = rowInner.Index
If rowOuter.Cells(0).Value >= rowInner.Cells(0).Value Then
dgvReceive.Rows.RemoveAt(OuterSourceRowIndex)
dgvReceive.Rows.Insert(InnerSourceRowIndex, rowOuter)
End If
Next
Next
For Each row As DataGridViewRow In dgvReceive.Rows
row.Cells(0).Value = row.Index + 1
Next
End If
Когда я пытаюсь действительно внести изменения, я получаю следующеегде строка 1 фактически перемещена в положение 7. Все это происходит в событии CellValueChanged
Я прошу прощения, если на этот вопрос уже был дан ответ. Я не смог найти ничего подобного. Спасибо за любую помощь.