2013-11-20 4 views
1

У меня есть простой оператор IF в моем коде, который я хочу запросить у пользователя, если выбран пункт в индексе 2 моего списка checklistbox1.Флажок Выбранный указатель выбран

Он работает, когда выбран сам индекс 2, но не работает, когда в моем списке контрольных вопросов проверяются другие элементы, включая индекс 2. Ниже приводится то, что у меня есть, теперь мне просто нужно, чтобы он работал, когда выбраны 2 и другие.

if (checkedListBox1.SelectedIndex == 2) 
{ 
    MessageBox.Show("Note to send email", "Note", MessageBoxButtons.OK); 
} 

ответ

2

Вместо этого вы можете использовать CheckedListBox.CheckedIndices.

Коллекция проверенных индексов в этом проверенномListBox.

foreach(int index in checkedListBox1.CheckedIndices) 
{ 
    if(index == 2) 
    { 
    MessageBox.Show("Note to send email", "Note", MessageBoxButtons.OK); 
    } 
} 
+1

Работал отлично !! Спасибо!! –

+0

@hexc Вы вполне можете встретить ';)' –

5

Заменить этот код с

if (checkedListBox1.SelectedIndices.Contains(2)) 
{ 
    MessageBox.Show("Note to send email", "Note", MessageBoxButtons.OK); 
} 

Это будет проверять, если 2 является одним из всех выбранных элементов.

Подробнее о SelectedIndices Недвижимость на MSDN.

2

Используйте SelectedIndices вместо SelectedIndex, он возвращает коллекцию выбранных индексов. Просто убедитесь, что там находится 2.