Множественный выбор на WinForms - PullRequest
5 голосов
/ 18 августа 2008

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

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

Ответы [ 5 ]

8 голосов
/ 18 августа 2008

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

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

2 голосов
/ 18 августа 2008

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

2 голосов
/ 18 августа 2008

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

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

2 голосов
/ 18 августа 2008

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

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

1 голос
/ 18 августа 2008

Если вы предоставляете пользователю небольшой список вариантов, придерживайтесь переключателей. Однако, если вы хотите использовать поле со списком для динамических или длинных списков. Установите стиль в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...