2014-04-02 7 views
0

이렇게 코드를 실행하고 싶지만 항상 루프를 뛰어 넘기 때문에 콘솔에 아무런 선이 표시되지 않습니다. 즉, selectedColumns는 비어 있습니다. 내 가정은 나 (또는 ​​사용자)가 열에서 셀을 선택한 다음 selectedColummns가 +1이라는 것입니다. 그러나 보이는 것처럼, 그것은 작동하지 않습니다. 그럼 전체 열을 선택의 selectionMode의 proberties을 설정하려고했으나 다음 예외가 발생합니다 :gridview.selectedColumns가 아닌 이유는 무엇입니까?

"System.InvalidOperationException"추가 정보 : 전체 열 선택을 선택한 경우 SortMode은 자동이 될 수 없습니다.

나는 SortMode가 무엇인지 알지 못합니다.

For Each col As DataGridViewColumn In datagridview2.SelectedColumns 

     Console.Write(datagridview2.SelectedColumns.Count) 
     Console.Write("1") 


    Next 

아이디어 열을 selectedColumns로 가져 오는 방법은 무엇입니까?

여기

내 문제를 해결 내 코드, 그러나 나는 똑똑한 것이 아니다 같아요

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    Dim body As String = "" 

    Dim myWriter As New StreamWriter("H:\downloads\test.csv", True) 
    Dim list As List(Of Integer) = New List(Of Integer) 

    For Each cell As DataGridViewCell In datagridview2.SelectedCells 

     If list.Contains(cell.ColumnIndex) = False Then 
      list.Add(cell.ColumnIndex) 
     End If 

    Next 


    For i = 0 To datagridview2.Rows.Count - 1 

     For ix = 0 To datagridview2.Columns.Count - 1 

      If list.Contains(ix) Then 

       If datagridview2.Rows(i).Cells(ix).Value IsNot Nothing Then 

        body = body + datagridview2.Rows(i).Cells(ix).Value.ToString + ";" 
       Else 
        body = body + ";" 
       End If 

      End If 

     Next 
     myWriter.WriteLine(body) 
     body = "" 

    Next 

    myWriter.Close() 

End Sub 

답변

0

당신은 선택 변경된 이벤트가 발생 된 후이 작업을 수행해야합니다. 예를 들어 :

Private Sub Mydg_ColSelected(sender As Object, e As SelectionChangedEventArgs) Handles datagridview2.SelectionChanged 

    For Each col As DataGridViewColumn In datagridview2.SelectedColumns 

    Console.Write(datagridview2.SelectedColumns.Count) 
    Console.Write("1") 

    Next 

End Sub 

또는이 당신이 후에 무엇을하지 않은 경우, 다음 대신 ColumnHeaderMouseClick 이벤트를 처리하려고

. Winforms, WPF, silverlight와 같이 어떤 기술을 사용하고 있는지 확실하지 않습니다.

+0

.csv 파일에 선택한 열을 써야하기 때문에 ColumnHeaderMouseClick 또는 ColSelected 변경 이벤트가 작동하지 않습니다. 그럼에도 불구하고, 이제는 selectedcell.columnindex를 통해 관리했습니다. 1 분 안에 편집을보세요. – steve

+0

해결책을 찾은 것을 알았습니다. – DNKROZ

관련 문제