0

ユーザーがデータグリッドビューで選択した行に基づいて新しいデータテーブルが作成されるようにしたいのですが、これが何をUnable to cast object of type 'System.Windows.Forms.DataGridViewRow' to type 'System.Windows.Forms.DataGridView 意味するのか見当がつかないというエラーが表示され続けます。

Private Function getCoordinates()

    Dim dt2 As New DataTable
    'Dim r As DataRow
    Dim n As Integer
    Dim selectedItems As DataGridViewSelectedRowCollection = dgv.SelectedRows
    dt = dgv.DataSource
    dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    dgv.MultiSelect = True


    dt2.Columns.Add("Position")
    Try
        For Each selectedItem As DataGridView In selectedItems
            dt2.Rows.Add(n)
            dt2.Rows(n)("Position") = dt.Rows.Item(n)("Mouse Position")
        Next


    Catch ex As Exception
        MsgBox("Error", MsgBoxStyle.Exclamation, "Error!")
    End Try


    Return dt2
4

2 に答える 2

3

交換

For Each selectedItem As DataGridView In selectedItems
    dt2.Rows.Add(n)
    dt2.Rows(n)("Position") = dt.Rows.Item(n)("Mouse Position")
Next

For Each selectedItem As DataGridViewRow In selectedItems
    dt2.Rows.Add(selectedItem)
    ' dt2.Rows(n)("Position") = dt.Rows.Item(n)("Mouse Position")
Next
于 2013-06-24T14:58:51.097 に答える
2

selectedItems には、DataGridViews ではなく、DataGridViewRow オブジェクトのリストが含まれています。以下に更新します。

For Each selectedItem As DataGridViewRow In selectedItems
于 2013-06-24T14:58:52.663 に答える