Je ne pense pas qu'il existe un moyen d'empêcher le tri, mais vous pouvez stocker les valeurs de ligne, de colonne et de tri de la grille avant la mise à jour, puis les restaurer après la mise à jour.
est ici une partie du code que j'utilise:
Friend Sub refreshGrid()
Dim row As Integer
Dim col As Integer
Dim gridCol As Integer
Dim gridColsToHide As Integer
Dim rowCountOrig As Integer
Dim rowCountNew As Integer
row = dgvReadOnly.CurrentRow.Index
col = dgvReadOnly.CurrentCell.ColumnIndex
Dim sortVal As String
sortVal = _setSource.DefaultView.Sort
rowCountOrig = _setSource.Rows.Count
_setSource = _displaySet.displaySetTable
rowCountNew = _setSource.Rows.Count
setRowFilter()
_setSource.DefaultView.Sort = sortVal
If (rowCountNew > rowCountOrig) Then ' added new row
row = dgvReadOnly.RowCount - 1 ' new row is at bottom of grid, but skip * row
End If
dgvReadOnly.DataSource = Nothing
dgvReadOnly.DataSource = _setSource
If row >= dgvReadOnly.RowCount - 1 Then ' after delete
row = dgvReadOnly.RowCount - 2
End If
If row >= 0 Then ' if didn't delete all rows matching filter
dgvReadOnly.CurrentCell = dgvReadOnly(col, row)
End If
End Sub