Множественный выбор на WinForms

Как лучше всего реализовать вариант множественного выбора в Windows Forms? Я хочу применить один выбор из списка, начиная со значения по умолчанию.

Кажется, что ComboBox был бы хорошим выбором, но есть ли способ указать непустое значение по умолчанию?
Я мог бы просто установить его в коде в какой-то подходящий момент инициализации, но я чувствую, что что-то упустил.

18.08.2008 13:44:23
5 ОТВЕТОВ
РЕШЕНИЕ

Если вы хотите получить только один ответ от группы, тогда вам лучше всего подойдет элемент управления RadioButton, или вы можете использовать ComboBox, если у вас будет много вариантов. Чтобы установить значение по умолчанию, просто добавьте элемент в коллекцию ComboBox и установите для этого элемента SelectedIndex или SelectedItem.

В зависимости от того, сколько вариантов вы просматриваете, вы можете использовать ListBox со свойством SelectionMode, установленным в MultiSimple, если это будет множественный выбор или вы можете использовать элемент управления CheckBox.

8
18.08.2008 13:56:40

Вы должны иметь возможность просто установить для свойства ComboBox.SelectedIndex то значение, которое вы хотите использовать по умолчанию.

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx

2
18.08.2008 13:47:12

Используйте свойство ComboBox.SelectedItem или SelectedIndex после вставки элементов, чтобы выбрать элемент по умолчанию.

Вы также можете рассмотреть возможность использования элемента управления RadioButton для выбора одного параметра.

2
18.08.2008 13:48:25

Вы можете использовать ComboBox со свойством DropDownStyle, установленным в DropDownList и SelectedIndex в 0 (или любым другим элементом по умолчанию). Это заставит всегда иметь элемент из выбранного списка. Если вы забудете это сделать, пользователь может просто ввести что-то еще в поле ввода - что было бы плохо :)

2
18.08.2008 13:59:19

Если вы предоставляете пользователю небольшой список вариантов, придерживайтесь переключателей. Однако, если вы хотите использовать поле со списком для динамических или длинных списков. Установите стиль DropDownList.

private sub populateList( items as List(of UserChoices))
   dim choices as UserChoices
   dim defaultChoice as UserChoices 

   for each choice in items
      cboList.items.add(choice)
      '-- you could do user specific check or base it on some other 
      '---- setting to find the default choice here
      if choice.state = _user.State or choice.state = _settings.defaultState then 
          defaultChoice = choice
      end if 
   next 
   '-- you chould select the first one
   if cboList.items.count > 0 then
      cboList.SelectedItem = cboList.item(0)
   end if 

   '-- continuation of hte default choice
   cboList.SelectedItem = defaultChoice

end sub
1
18.08.2008 14:37:09