2010-04-15 11 views
1

5 개 열로 세부 모드에서 ListView 컨트롤을 설정했습니다. 다음 서브 루틴을 사용하는 코드로 채워집니다.ListView 컨트롤에서 데이터를 다시 얻으려면

  For j = 0 To 14 
       cmd = New OleDbCommand("SELECT TeacherName, ClassSubject, BookingDate, BookingPeriod FROM " & SchemaTable.Rows(i)!TABLE_NAME.ToString() & " WHERE (((BookingDate)=" & Chr(34) & Date.Today.AddDays(j) & Chr(34) & ") AND ((UserName)=" & Chr(34) & user & Chr(34) & "));", cn) 
       dr = cmd.ExecuteReader 
       Dim itm As ListViewItem 
       Dim itms(4) As String 
       While dr.Read() 
        itms(0) = dr(0) 
        itms(1) = SchemaTable.Rows(i)!TABLE_NAME.ToString() 
        itms(2) = dr(1) 
        itms(3) = dr(2) 
        itms(4) = dr(3) 
        itm = New ListViewItem(itms) 
        Manage.ManageList.Items.Add(itm) 
       End While 
      Next 

이 코드는 전체 루틴이 아니며 그리드에 채워진 비트입니다.

이제 데이터베이스에서 예약을 삭제하기 위해 ListView 컨트롤에서 데이터를 검색해야합니다. 나는 각 컬럼의 내용을 검색하려면 다음 코드를 사용 :

ManageList.SelectedItems(0).Text 

을하지만 내가 할 경우에만 인덱스 0에 작동하는 것 같다 :

InvalidArgument=Value of '3' is not valid for 'index'. Parameter name: index

:

ManageList.SelectedItems(3).Text 

나는이 오류

나는 꽤 엉망이다. 인덱스 1이 2 열을 가리키고 인덱스 2가 3 등을 가리키는 것이 논리적으로 보인다.

감사합니다. 감사드립니다.

+0

오류가 : 단지 1 개 요소를 selectedItems를을 가지고있을 수 있을까요? – Ando

답변

1

ManageList.SelectedItems(3).Text라고 말하면 선택한 항목의 네 번째 열이 아닌 목록에서 선택한 네 번째 항목을 묻는 것입니다. 그것의 생각해이 방법 : ManageList.SelectedItems(0)=itms, 문자열 배열입니다

MSDN

편집을 참조하십시오. 다음 예제는 목록에서 선택한 배열의 앞뒤로 배열 값에 액세스하는 방법을 보여줍니다

Dim itms() As String = ManageList.SelectedItems(0) 
If itms.Length>3 Then 
    itms(3).DoWhatever 
End If 
+0

그래서 Dim로 새로운 변수를'ListView.SelectedListViewItemCollection'으로 Dim하고 ListView의 값에 접근해야합니까? – Joe

+0

ListViewItem은 실제로 문자열 배열이므로 ManageList.SelectedItems (0)을 호출하면 문자열 배열 (또는 그 위치에 넣은 문자열)을 반환합니다. 배열을 만들었으므로 그 배열에있는 값에 액세스 할 수 있습니다. 선택한 ListViewItem의 네 번째 배열 요소에 액세스하는 예제는 위의 편집을 참조하십시오. –

+0

감사합니다. 지금은 의미가 있습니다 :) – Joe

0

selectedItems를 방법을 선택한있는 ListViewItem (들)을 반환합니다. 내부의 개별 열에 액세스하려면 SubItems 속성을 사용하십시오. 문서에서

참고 :

The first subitem in the ListViewItem.ListViewSubItemCollection is always the item that owns the subitems. When performing operations on subitems in the collection, be sure to reference index position 1 instead of 0 to make changes to the first subitem.

관련 문제