Как лучше всего реализовать вариант множественного выбора в Windows Forms? Я хочу применить один выбор из списка, начиная со значения по умолчанию.
Кажется, что ComboBox был бы хорошим выбором, но есть ли способ указать непустое значение по умолчанию?
Я мог бы просто установить его в коде в какой-то подходящий момент инициализации, но я чувствую, что что-то упустил.
Если вы хотите получить только один ответ от группы, тогда вам лучше всего подойдет элемент управления RadioButton, или вы можете использовать ComboBox, если у вас будет много вариантов. Чтобы установить значение по умолчанию, просто добавьте элемент в коллекцию ComboBox и установите для этого элемента SelectedIndex или SelectedItem.
В зависимости от того, сколько вариантов вы просматриваете, вы можете использовать ListBox со свойством SelectionMode, установленным в MultiSimple, если это будет множественный выбор или вы можете использовать элемент управления CheckBox.
Вы должны иметь возможность просто установить для свойства ComboBox.SelectedIndex то значение, которое вы хотите использовать по умолчанию.
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx
Используйте свойство ComboBox.SelectedItem или SelectedIndex после вставки элементов, чтобы выбрать элемент по умолчанию.
Вы также можете рассмотреть возможность использования элемента управления RadioButton для выбора одного параметра.
Вы можете использовать ComboBox со свойством DropDownStyle, установленным в DropDownList и SelectedIndex в 0 (или любым другим элементом по умолчанию). Это заставит всегда иметь элемент из выбранного списка. Если вы забудете это сделать, пользователь может просто ввести что-то еще в поле ввода - что было бы плохо :)
Если вы предоставляете пользователю небольшой список вариантов, придерживайтесь переключателей. Однако, если вы хотите использовать поле со списком для динамических или длинных списков. Установите стиль 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