2013-07-15 4 views
0

for 또는 foreach 루프를 사용하지 않고 인덱스 변수를 사용하는 방법이 있는지 궁금해했습니다.이 예제에서와 같이 (내가 만들었지 만 작동하지 않습니다) : 나는 3 개의 정수 배열을 가지고 있는데, 하나는 목록 상자에 들어가고, 목록 상자에서 항목을 선택하면 선택한 항목의 색인을 가져와 다른 배열 내부에서 해당 색인을 찾아 2 번째 및 제 3 배열을 텍스트 상자 안에 여기에 내 코드 :루프를 사용하지 않고 가변 인덱스 사용

if (ListBox1.SelectedItems.Count > 0) 
     { 
      TextBox1.Text = jnames[ListBox1.SelectedIndex]; 
      TextBox2.Text = enames[ListBox1.SelectedIndex]; 
     } 

아무런 오류가 없으며 예외가 없습니다.

+0

코드가 완벽합니다. 그리고'ListBox1.SelectedItems.Count'가 0 일 때 아무것도하지 않습니다. 그럼 네 질문은 뭐니? –

+1

흠,'ListBox1.Text'를 설정하면 다음 줄에 도달하기 전에'ListBox1.SelectedItem'을 망가뜨리는 지 궁금합니다. 디버거를 사용하여 단일 단계. –

+0

"뭔가"해야합니다. 디버거를 사용하여 단계별 실행을 시도 했습니까? –

답변

3

SelectedItems은 복수 선택 ListBox에 더 적합합니다. 직접 SelectedIndex을 사용해야합니다.

if (ListBox1.SelectedIndex > -1) 
    { 
     TextBox1.Text = jnames[ListBox1.SelectedIndex]; 
     TextBox2.Text = enames[ListBox1.SelectedIndex]; 
    } 

디버거를 사용하는 법을 배워야합니다. if 문에 설정된 중단 점은 조건이 충족되고 if 내부 코드가 실행되는지 여부를 표시합니다.

+0

당신의 솔루션은 실제로 똑같은 결과를 내지 못하고 있습니다. 여전히 jnames와 enames에서 문자열을 얻을 수 없습니다 :/textboxes는 여전히 비어 있습니다. – Omarrrio

+0

디버거를 사용했고, 내부의 코드는 실행되지 않았지만 이유는 무엇입니까? 그게 뭐야? EDIT : 실행되지만 아무 일도 일어나지 않습니다 : s – Omarrrio

+0

글쎄, 내게 말해. 디버거는'ListBox1.SelectedItems.Count'의 값이 무엇인지 보여 줍니까? –

관련 문제