Multiple-choice-auf WinForms
Frage
Was ist der beste Weg, die die Durchführung eines multiple-choice-option in Windows Forms?Ich möchte erzwingen, eine einzelne Auswahl aus einer Liste, beginnend mit einem default-Wert.
Es scheint wie eine ComboBox wäre eine gute Wahl, aber gibt es eine Möglichkeit, geben Sie eine nicht-leere default-Wert?
Ich könnte nur setzen Sie es in den code an einer geeigneten Initialisierung Punkt, aber ich fühle mich wie ich bin etwas fehlt.
Lösung
Wenn Sie nur eine Antwort aus der Gruppe, dann eine RadioButton-Steuerelement würde Ihre beste fit, oder Sie könnte verwenden Sie die ComboBox, wenn Sie haben eine Menge von Optionen.Um einen Standardwert, nur ein Eintrag in der ComboBox-Sammlung und legen Sie die SelectedIndex-oder SelectedItem, um das Element.
Je nachdem, wie viele Optionen, die Sie betrachten, können Sie ein Listenfeld mit der SelectionMode-Eigenschaft in MultiSimple, wenn wird es werden multiple-choice oder verwenden Sie die Kontrollkästchen-Steuerelement.
Andere Tipps
Sie sollten in der Lage sein, legen Sie die ComboBox.SelectedIndex-Eigenschaft, was Sie wollen, die Standard Wert zu sein.
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx
Verwenden Sie die ComboBox.SelectedItem oder SelectedIndex Eigenschaft, nach der die Elemente eingefügt wurden, wählen Sie die Standard-Element.
Sie könnten auch erwägen, RadioButton Kontrolle durchzusetzen, die Auswahl einer einzigen option.
Können Sie ein Kombinationsfeld mit der DropDownStyle Eigenschaft des DropDownList-und die SelectedIndex-Eigenschaft auf 0 (oder was auch immer das Standard-Element ist).Dies führt dazu, dass immer ein Element aus der Liste ausgewählt.Wenn Sie vergessen, das zu tun, kann der Benutzer geben Sie einfach etwas anderes in die edit-box die Teil - und das wäre schlecht :)
Wenn Sie sind, geben die Benutzer eine kleine Liste von Entscheidungen, die dann stick mit dem radio-buttons.Jedoch, wenn Sie wollen, wollen, mit dem Kombinationsfeld für dynamische oder lange Listen.Stellen Sie den Stil auf 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