我收到此错误:Argument 'Expression' cannot be converted to type 'DataGridViewRow'.
我不知道它意味着什么或如何修复它,它发生在这一行:
dt2.Rows(Val(selectedItem))("Position") = dt.Rows(selectedItem.Cells(1).Value)("Mouse Position")
有人可以解释一下错误是什么以及如何修复它?
Try
If selectedItems Is Nothing Then
For n = 0 To dt.Rows.Count - 1
dt2.Rows.Add(n)
dt2.Rows(n)("Position") = dt.Rows.Item(n)("Mouse Position")
Next
Else
For Each selectedItem As DataGridViewRow In selectedItems
dt2.Rows.Add(selectedItem)
dt2.Rows(Val(selectedItem))("Position") = dt.Rows(selectedItem.Cells(1).Value)("Mouse Position")
Next
End If
Catch ex As Exception
MsgBox("Error", MsgBoxStyle.Exclamation, "Error!")
End Try
答案 0 :(得分:1)
我必须先查看您之前的问题才能理解您的问题 变量dt2是一个只有一列名为“Position”的DataTable,因此将DataGridViewRow添加到此DataTable的DataRow集合是没有意义的。
你的第一个循环应该是
For n = 0 To dt.Rows.Count - 1
Dim r = dt2.NewRow();
r("Position") = dt.Rows.Item(n)("Mouse Position")
dt2.Rows.Add(r)
Next
而第二个循环
For Each selectedItem As DataGridViewRow In selectedItems
Dim r = dt2.NewRow()
r("Position") = dt.Rows(selectedItem.Cells(1).Value.ToString)("Mouse Position")
dt2.Rows.Add(r)
Next