2016-01-28 2 views
0

Другая проблема, эта, я не думаю, что это просто, как двойной, как в прошлый раз.Сделать выбор списка Выберите несколько списков C#

Я создаю список, в котором я хочу, чтобы пользователь мог выбрать один из вариантов, и для него изменить «выбранное состояние» других 2, которые находятся рядом с ним в форме. Проблема в том, что я не могу понять, как вытащить то, что было выбрано в первом списке.

Я попытался с помощью

private void workshopSelect_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    for (int i = 1; i != 5; i++) { 
     if (workshopSelect.GetSelected == i){ 
      NoDBox.SetSelected(i, true); 
      feeBox.SetSelected(i, true); 
     } 
    } 
} 

но workshopselect.getselected имеет красные squigglies. В нем говорится, что оператор == не может использоваться и что он «возвращает значение, указывающее, выбран ли указанный элемент». Я попытался использовать (workshopSelect.GetSelected[i]), который не работал, попробовал использовать (workshopSelect.GetSelected(i)), который тоже не работал.

Программа должна выглядеть следующим образом, когда я выбираю одну из мастерских линий program end result

Так что мой вопрос, на самом деле, только то, что именно я могу использовать, чтобы проверить коробку для того, что линия была выбрана?

+1

[Прочитать документацию] (https://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.getselected%28v=vs.110%29.aspx), чтобы понять, что этот метод делает, как использовать его, что он возвращает, и независимо от того, похоже ли оно, что он может делать то, что вам нужно. –

+0

Ах .. спасибо, что помогли больше, чем моя книга LOL. Я не мог найти эту информацию. Спасибо :) –

+0

Нет проблем, Джон. MSDN - отличный ресурс. –

ответ

1

Чтобы получить выбранный элемент, вы должны использовать свойство SelectedItem вместо GetSelected. Или SelectedIndex для получения индекса.

if (listbox1.SelectedItem.ToString() == "Supervision skill") 
... 

if (listbox1.SelectedIndex == 1) ... 
+0

Ну, дело в том, что я пытался ограничить количество строк кода, которые у меня были здесь, я хотел только 5 или 6, а не 20+. Если бы выражение if для каждой отдельной строки было бы проще придумать, но это заняло бы гораздо больше места, которое я не хотел использовать. - Только что заметила последнюю половину, для selectedIndex, которая тоже сработала бы, так же, как и многие строки, как я это делаю сейчас. –

0

Причина моего if (workshopSelect.GetSelected(i)) не работа, потому что хорошо .. Я забыл одну простую вещь, полагая, что, так как это говорит о том, что оператор == не был допущен (что это такое). Это было из-за того, что я должен был напечатать его так: if (workshopSelect.GetSelected(i) == true) как только я изменил это, он сделал именно то, что я хотел.

Смежные вопросы