WinForms上的多项选择

时间:2008-08-18 13:44:23

标签: winforms combobox

在Windows窗体中实现多项选项的最佳方法是什么?我想从列表中强制执行单个选择,从默认值开始。

ComboBox似乎是一个不错的选择,但有没有办法指定非空白的默认值?
我可以在代码中的某个适当的初始化点设置它,但我觉得我错过了一些东西。

5 个答案:

答案 0 :(得分:8)

如果您只想从该组中获得一个答案,那么RadioButton控件将是您的最佳选择,或者如果您有很多选项,则可以使用ComboBox。要设置默认值,只需将项添加到ComboBox的集合中,并将SelectedIndex或SelectedItem设置为该项。

根据您正在查看的选项数量,您可以使用ListBox并将SelectionMode属性设置为MultiSimple,如果它是多选项,或者您可以使用CheckBox控件。

答案 1 :(得分:2)

您应该能够将ComboBox.SelectedIndex属性设置为您想要的默认值。

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

答案 2 :(得分:2)

在插入项目后使用ComboBox.SelectedItemSelectedIndex属性选择默认项目。

您还可以考虑使用RadioButton控制来强制选择单个选项。

答案 3 :(得分:2)

您可以使用ComboBox,将DropDownStyle属性设置为DropDownList,将SelectedIndex设置为0(或默认项目为)。这将强制始终从列表中选择一个项目。如果你忘记这样做,用户可以在编辑框部分输入其他东西 - 这会很糟糕:)

答案 4 :(得分: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