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 は、"Position" という名前の列が 1 つしかない DataTable であるため、この 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

2番目のループ中

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 に答える