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