我有一个datagridview,我想将用户选择的确切行复制到相同的位置(上图)。我现在就拥有它,所以它在所选的当前行上方插入行,但它不会复制所有值。 我只是使用基本网格,没有数据集或数据表。继承我的代码。
If dgvPcPrevMonth.SelectedRows.Count > 0 Then
dgvPcPrevMonth.Rows.Insert(dgvPcPrevMonth.CurrentCell.RowIndex, dgvPcPrevMonth.SelectedRows(0).Clone)
Else
MessageBox.Show("Select a row before you copy")
End If
答案 0 :(得分:2)
克隆方法只克隆行,而不是克隆行中的数据。您必须循环遍历列并在插入后自己添加值
Public Function CloneWithValues(ByVal row As DataGridViewRow) _
As DataGridViewRow
CloneWithValues = CType(row.Clone(), DataGridViewRow)
For index As Int32 = 0 To row.Cells.Count - 1
CloneWithValues.Cells(index).Value = row.Cells(index).Value
Next
End Function
代码直接来自
下面提供的msdn链接答案 1 :(得分:0)
我更新了你的代码以测试当前行是不是第一行并克隆cuurent行(不是第一行)。
If ddgvPcPrevMonth.CurrentCell.RowIndex > 0 Then
dgvPcPrevMonth.Rows.Insert(dgvPcPrevMonth.CurrentCell.RowIndex, dgvPcPrevMonth.Rows(dgvPcPrevMonth.CurrentCell.RowIndex-1).Clone)
Else
MessageBox.Show("Select a row (but not the first one) before you copy")
End If