2008-08-18 28 views
5

Jaki jest najlepszy sposób wdrożenia opcji wielokrotnego wyboru w Windows Forms? Chcę wymusić pojedynczą selekcję z listy, zaczynając od wartości domyślnej.Wielokrotny wybór na WinForms

Wygląda na to, że ComboBox byłby dobrym wyborem, ale czy istnieje sposób określenia niepustej wartości domyślnej?
Mogę ustawić go w kodzie w odpowiednim punkcie inicjalizacji, ale czuję, że czegoś brakuje.

Odpowiedz

8

Jeśli potrzebujesz tylko jednej odpowiedzi z grupy, kontrola RadioButton będzie najlepiej pasować lub możesz użyć ComboBox, jeśli będziesz miał wiele opcji. Aby ustawić wartość domyślną, wystarczy dodać element do kolekcji ComboBox i ustawić SelectedIndex lub SelectedItem na tę pozycję.

W zależności od tego, ile opcji patrzysz, możesz użyć bloku listy z właściwością SelectionMode ustawioną na MultiSimple, jeśli będzie to wielokrotny wybór lub możesz użyć kontrolki CheckBox.

2

Możesz użyć ComboBox z właściwością DropDownStyle ustawioną na DropDownList i SelectedIndex na 0 (lub dowolną pozycję domyślną). Spowoduje to wymuszenie zawsze posiadania pozycji z wybranej listy. Jeśli zapomnisz to zrobić, użytkownik może po prostu wpisać coś innego w polu edycji - co byłoby złe :)

1

Jeśli dajesz użytkownikowi małą listę opcji, trzymaj się za pomocą przycisków opcji. Jednakże, jeśli chcesz, chcesz użyć pola kombi dla dynamicznych lub długich list. Ustaw styl na 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 
Powiązane problemy