2010-03-17 9 views
0

목록 상자가있어서 찾고있는 문자열이 내부에 있는지 보려면 각 항목을 반복하고 싶습니다. 내가 할 수있는 걸 안다.하지만 그 부분 문자열을 보면 안된다. 이 같은 모양을 사용하여 코드 메신저 : 루프에서VB 목록 상자에 기본값이 없기 때문에 색인을 생성 할 수 없습니다.

While tempInt > Listbox.items.count then 
if searchString.contains(listbox(tempInt)) then 
end if 
tempInt+=1 
end while 

다 잘하지만 VB는 목록 상자 (tempInt) 부분에 오류가 있습니다. 오류는 "class windows.forms.listbox는 기본값이 없으므로 인덱싱 할 수 없습니다"입니다. 누구든지 디폴트 값 쓰레기를 도울 수 있습니까? 나는 빈 문자열을 넣으려고했으나 아무 변화도 없었다.

답변

1

사용을 배열처럼, 인덱서를 통해 액세스 할 수있는 목록 상자의 Items 속성은 ...

 
listBox.Items[0] 
+0

C#을 synta를 사용 x, 그럼에도 불구하고 사실입니다. –

+0

그 덕분에 :) –

1

오류 메시지는 아무튼 것을 의미합니다 (ListBox 클래스가 인덱서를 가지고 있지 않음을 의미 VB에서는 default으로, C#에서는 인덱서 또는 this 속성으로 알려진 속성을 정의하지 않습니다.이 속성은 값을 검색하기 위해 인덱스를 전달할 수 있습니다. For Each 아마 (인덱스가 필요하지 않습니다 당신을 가정) 가장 좋은 것입니다하지만

당신은 For 루프를 사용하여, 그냥 옆으로 listbox.Items(tempInt)

을 찾고은

는 선택한 While에 바람직하다 인덱스가 당신에게 relvant되지 않은 경우
For tempInt as Integer = 0 to listbox.Items.Count - 1 
    if searchString.contains(listbox.Items(tempInt).ToString()) then 
    end if 
Next 

또는, For Each

For Each item in listbox.Items 
    if searchString.contains(item.ToString()) then 
    end if 
Next 
관련 문제