2008-08-18 11 views
5

Wie implementiert man am besten eine Multiple-Choice-Option in Windows Forms? Ich möchte eine einzelne Auswahl aus einer Liste erzwingen, beginnend mit einem Standardwert.Mehrfachauswahl in WinForms

Es scheint, als wäre eine ComboBox eine gute Wahl, aber gibt es eine Möglichkeit, einen nicht leeren Standardwert anzugeben?
Ich könnte es einfach in den Code an einem geeigneten Initialisierungspunkt setzen, aber ich habe das Gefühl, dass ich etwas verpasse.

Antwort

8

Wenn Sie nur eine Antwort von der Gruppe möchten, dann wäre ein RadioButton-Steuerelement Ihre beste Wahl oder Sie könnten die ComboBox verwenden, wenn Sie viele Optionen haben. Um einen Standardwert festzulegen, fügen Sie das Element einfach zur Auflistung der ComboBox hinzu und legen den SelectedIndex oder SelectedItem auf diesen Eintrag fest.

Je nachdem, wie viele Optionen Sie betrachten, können Sie eine ListBox mit der SelectionMode-Eigenschaft auf MultiSimple verwenden, wenn es sich um eine Mehrfachauswahl handelt, oder Sie können das CheckBox-Steuerelement verwenden.

2

Verwenden Sie die ComboBox.SelectedItem oder SelectedIndex Eigenschaft, nachdem die Elemente wurden eingeführt, um die Standard-Option auszuwählen.

Sie könnten auch die Verwendung von RadioButton Steuerelement in Betracht ziehen, um die Auswahl einer einzelnen Option zu erzwingen.

2

Sie können eine ComboBox mit der DropDownStyle -Eigenschaft auf DropDownList und SelectedIndex auf 0 (oder was auch immer der Standardartikel ist) verwenden. Dies erzwingt immer ein Objekt aus der Liste ausgewählt zu haben. Wenn Sie das vergessen, könnte der Benutzer einfach etwas anderes in den Bearbeitungsbereich eingeben - was schlecht wäre :)

1

Wenn Sie dem Benutzer eine kleine Auswahlliste geben, dann bleiben Sie bei den Optionsschaltflächen. Wenn Sie jedoch das Kombinationsfeld für dynamische oder lange Listen verwenden möchten. Legen Sie den Stil auf DropDownList fest.

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 
Verwandte Themen