2008-08-18 34 views
5

Windowsフォームで複数選択オプションを実装する最良の方法は何ですか?私は、デフォルト値から始めて、リストから1つの選択を強制したい。WinFormsでの複数選択

ComboBoxは良い選択ですが、空白以外のデフォルト値を指定する方法はありますか?
私はちょうど適切な初期化ポイントでコードに設定することができますが、私は何か不足しているように感じます。

答えて

8

グループからの回答が1つだけの場合は、RadioButtonコントロールが最適です。多くのオプションがある場合は、ComboBoxを使用できます。デフォルト値を設定するには、コンボボックスのコレクションにアイテムを追加し、そのアイテムにSelectedIndexまたはSelectedItemを設定します。

表示するオプションの数に応じて、SelectionModeプロパティをMultiSimpleに設定したListBoxを使用することもできます。複数選択肢またはCheckBoxコントロールを使用できます。

2

項目は、デフォルトの項目を選択するために挿入された後ComboBox.SelectedItemまたはSelectedIndexプロパティを使用します。

RadioButtonコントロールを使用して、1つのオプションの選択を強制することも考えられます。

2

DropDownStyleプロパティをDropDownListおよびSelectedIndexに設定したComboBoxを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 
関連する問題