在Windows窗体中实现多项选项的最佳方法是什么?我想从列表中强制执行单个选择,从默认值开始。
ComboBox似乎是一个不错的选择,但有没有办法指定非空白的默认值?
我可以在代码中的某个适当的初始化点设置它,但我觉得我错过了一些东西。
答案 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.SelectedItem或SelectedIndex属性选择默认项目。
您还可以考虑使用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