2012-05-15 3 views
0

데이터가 포함 된 DataGridview가 있는데 행과 한 번에 하나씩 만 선택할 수 있도록 설정했습니다.선택한 행에서 단일 셀 데이터 선택 - DataGridView

그러나 선택한 행의 셀 중 하나에서 데이터를 가져와야합니다.

Dim data As String = DataGridView1.SelectedRows.Cells(5).toString 

그런 것 같은데, 그럴 가치가 없지만 누구나 할 수있는 방법을 알고 있습니까?

답변

7

아마도 올바른 구문은 다음과 같습니다 : 당신은 하나 개의 행을 선택으로 설정 한 경우, 항상 해당 라인을 변경 0 시도 할 것이다

Dim data As String = DataGridView1.SelectedRows(0).Cells(5).Value.ToString 

참조 MSDN docs

2

SelectedRows에는 색인 매개 변수가 필요합니다.

Dim data As String = DataGridView1.SelectedRows(0).Cells(5).Value.toString() 
+0

이상하게 들리면 "DataGridView1.SelectedRows (0) .Cells (5) .toString"이라는 문자열이 데이터로 제공됩니다. 또한, 셀 5보다 높은 것을 선택하면 인수가 범위를 벗어났다는 오류가 발생합니다. – HarryBeasant

+0

5는 열의 양과 관련이 있습니다. 범위를 벗어난 예외가 있으면 예외입니다. 존재하지 않는 열에 액세스하려는 것입니다. 그 인덱스는 0부터 시작하므로 5 번째 열의 인덱스는 4입니다. –

+0

흠 매우 이상하게도 4 번 열을 선택하면 다운로드가되고 문자열은 다음과 같이 나타납니다 : DataGridViewTextBoxCell7BColumnIndex = 4, RowIndex = 7D – HarryBeasant

2
Dim data As String = YourDataGrid.Item("YourColumnHere", YourDataGrid.CurrentRow.Index).Value 

희망이 도움이됩니다.

0

이 코드는 또 다른 방법은 '희망 ............ DataGridView1.SelectedRows (DataGridView1.CurrentRow.Index) .Cells (5) .Value.ToString()

0

서 수가 선택한 행을 식별하는 대신이 호출이 DataGridview와 관련된 이벤트에서 사용되는 경우 이벤트 인수의 구조 인 "e"라는 이벤트에 전달 된 값이 있어야합니다. e.RowIndex 그 eventarg 구조 유효한 경우, 당신은 선택된 행의 값으로 사용할 수

어둡게 strCellValue 문자열 = DataGridView1.Rows (e.RowIndex) .Cells (6) 등 .Value

해당 인수에서 e.ColumnIndex를 가져올 수도 있습니다.