0

我收到此错误: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
4

1 回答 1

1

我必须查看您之前的问题才能理解您的问题。
变量 dt2 是一个 DataTable,只有一个名为“Position”的列,因此向该 DataTable 的 DataRow 集合添加 DataGridViewRow 没有任何意义。

你的第一个循环应该是

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
于 2013-06-25T14:02:40.197 回答