2008-08-18 4 views
5

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

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

ответ

8

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

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

2

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

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

2

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

1

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