2011-04-27 4 views
1

내 응용 프로그램에 ComboBox가 있습니다. 이미 선택된 인덱스 이외의 인덱스를 선택하고 싶습니다.콤보 상자에서 레코드 선택

int index = ComboBox0.SelectedIndex; 
int count = ComboBox0.Items.Count; 

ComboBox0.SelectedIndex = ? 

어떻게 하드 코딩하지 않고이 작업을 수행 할 수 있습니까? 목록의 다음 항목을 사용할 수 선택합니다

ComboBox0.SelectedIndex = (ComboBox0.SelectedIndex + 1) % ComboBox0.Count; 

:

답변

2

당신이 뭔가를 할 수 있습니다. 경우

+0

나는이 접근법을 좋아하지만, 'Count = 6'라고 말하고 마지막 항목을 선택한다 ('SelectedIndex = 5'). 이 수식이 '1'을 반환하지 않습니다. 즉, 첫 번째 목록 항목이 아닌 두 번째 목록 항목을 선택합니까? ComboBoxes가 0으로 인덱싱되지 않았습니까 (적어도 C#에서는)? –

+0

@djacobson 당신은 절대적으로 옳다. 나는 그것의 주위에 방법을 생각하려고 노력할 것이다 (비록 우리가 첫 번째 엔트리를 잃는다면 그것은 협상이 아닐 수도 있지만). Ahhh ... 그것을 고쳤다. 방금 카운트 감소를 제거했습니다. 나는 항상 자동으로 카운트를 1 씩 줄이는 일회성을 걱정하므로, 여기서는 필요하지 않습니다. –

+0

이 로직이 항상 작동하는지 확신 할 수 없습니다. 현재 2- 항목 목록의 첫 번째 항목에있는 경우 SelectedIndex는 0이고 Count는 2입니다. 1 % 1 = 0, 원래 선택된 색인입니다. 하지만 나는 이것에 녹슬 수 있습니다 ... – nycdan

0

당신이 뭔가를 사용할 수 있습니다, 무작위를 선택합니다 : 무작위 변수가 될 것

int n = (int)(random * (count - 1)); 
if (n < index) { 
    ComboBox0.SelectedIndex = n; 
} else { 
    ComboBox0.SelectedIndex = n + 1; 
} 

과 :

random = new Random(); 
0

당신은 단지 이외의 항목을해야하는 경우 현재 선택되어 있고 (두 개가 있다고 확신하는 경우) 현재 선택되어 있지 않은 경우 첫 번째 항목을 선택하고 첫 번째 항목을 선택하면 두 번째 항목을 선택하십시오.

if (ComboBox0.SelectedIndex == 0) ComboBox0.SelectedIndex = 1; 
else ComboBox0.SelectedIndex = 0; 
관련 문제