让DataGridView的新增行不排序

来源:互联网 发布:php mongodb 长连接 编辑:程序博客网 时间:2024/04/28 22:10

原理:在排序前保存新增行,然后将其删除。排序后将其还原。
我这里Column(3)默认是只读的,只有新增行才能输入.可按照自己需要判断新增行.

  1. Private lstNewRow As New List(Of DataGridViewRow)
  2. Private Sub dgvData_CellMouseClick(ByVal sender As ObjectByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvData.CellMouseClick
  3.     Dim i As Integer
  4.     ' DataGridView Header Check
  5.     If e.RowIndex >= 0 Then
  6.         Exit Sub
  7.     End If
  8.     '---------------------------------
  9.     ' When Click DataGridView Header 
  10.     ' Check New Rows And Save It
  11.     '---------------------------------
  12.     If lstNewRow.Count <= 0 Then
  13.         For i = dgvData.RowCount - 2 To 0 Step -1
  14.             If dgvData.Rows(i).Cells(3).ReadOnly = False Then
  15.                 lstNewRow.Add(dgvData.Rows(i))
  16.                 dgvData.Rows.Remove(dgvData.Rows(i))
  17.             Else
  18.                 Exit For
  19.             End If
  20.         Next
  21.     End If
  22. End Sub
  23. Private Sub dgvData_Sorted(ByVal sender As ObjectByVal e As System.EventArgs) Handles dgvData.Sorted
  24.     If lstNewRow.Count <= 0 Then
  25.         Exit Sub
  26.     End If
  27.     ' Add New Rows To DataGridView
  28.     For i = lstNewRow.Count - 1 To 0 Step -1
  29.         dgvData.Rows.Add(lstNewRow(i))
  30.     Next
  31.     lstNewRow.Clear()           ' Clear Saved Container
  32. End Sub
原创粉丝点击