2013-06-24 3 views
0

사용자가 datagridview에서 선택한 행을 기반으로 새 데이터 테이블이 만들어 지도록하려고하지만 오류 메시지가 계속 나타납니다. 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 
+0

여기서 오류가 발생합니까? – KevinDTimm

+0

어떤 라인에 오류가 있습니까? –

+0

'각 selectedItem에 대해 DataGridView로 selectedItems에 있음 ' – bbesase

답변

3

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

정보를 추가 할 때 사실 정보를 추가하지 않고'DataGridViewRow {Index = x}'를 추가하면 – bbesase

+1

맞습니다. 그것은 두 번째 단계입니다. 당신은 오류가 사라 졌어요. :) – Andrevinsky

2

selectedItems를 통해

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

교체가에 DataGridViewRow 개체가 아닌 DataGridViews의 목록이 포함되어 있습니다. 다음으로 업데이트 :

For Each selectedItem As DataGridViewRow In selectedItems