Windowsフォームで複数選択オプションを実装する最良の方法は何ですか?デフォルト値から始めて、リストから1つの選択を強制したいと思います。
ComboBoxは良い選択のようですが、空白以外のデフォルト値を指定する方法はありますか?
適切な初期化ポイントでコードに設定することもできますが、何かが足りないように感じます。
グループからの回答が 1 つだけ必要な場合は、RadioButton コントロールが最適です。選択肢が多い場合は、ComboBox を使用できます。デフォルト値を設定するには、項目を ComboBox のコレクションに追加し、SelectedIndex または SelectedItem をその項目に設定します。
表示しているオプションの数に応じて、SelectionMode プロパティを MultiSimple に設定した ListBox を使用できます (複数選択の場合、または CheckBox コントロールを使用できる場合)。
ComboBox.SelectedIndexプロパティに、デフォルト値を設定するだけで済みます。
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx
アイテムが挿入された後、 ComboBox.SelectedItemまたはSelectedIndexプロパティを使用して、デフォルトのアイテムを選択します。
RadioButtonコントロールを使用して、単一のオプションの選択を強制することも検討できます。
DropDownStyleプロパティを DropDownList に設定し、SelectedIndex を 0 (または既定の項目は何でも) に設定した ComboBox を使用できます。これにより、常にリストからアイテムが選択されるようになります。それを忘れると、ユーザーは編集ボックス部分に何か他のものを入力することができます - これは悪いことです:)
ユーザーに選択肢の小さなリストを提供している場合は、ラジオ ボタンを使用してください。ただし、動的または長いリストにコンボ ボックスを使用したい場合。スタイルを 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