2008-08-18 16 views
5

Windows Forms'da çoktan seçmeli bir seçenek uygulamanın en iyi yolu nedir? Bir listeden, bir varsayılan değerle başlayarak tek bir seçim yapmak istiyorum.WinForms'te çoktan seçmeli

Bir ComboBox iyi bir seçim olabilir gibi görünüyor, ancak boş olmayan bir varsayılan değer belirtmenin bir yolu var mı?
Kodda bazı uygun başlangıç ​​noktalarında ayarlayabilirdim, ancak bir şeyleri kaçırıyormuş gibi hissediyorum.

cevap

8

Gruptan yalnızca bir yanıt almak isterseniz, RadioButton denetimi sizin için en uygun seçenek olabilir veya çok fazla seçeneğiniz varsa ComboBox'ı kullanabilirsiniz. Varsayılan bir değer ayarlamak için, öğeyi ComboBox koleksiyonuna ekleyin ve SelectedIndex veya SelectedItem öğesini bu öğeye ayarlayın.

Kaç tane seçeneğe sahip olduğunuza bağlı olarak, çok sayıda seçenek olacaksa veya CheckBox denetimini kullanabiliyorsanız, SelectionMode özelliği ile MultiSimple ayarlanmış bir ListBox'ı kullanabilirsiniz.

2

Kullanım öğeleri sonra ComboBox.SelectedItem veya SelectedIndex mülkiyet varsayılan öğeyi seçmek için takılmıştır.

Ayrıca, tek bir seçeneğin seçimini zorlamak için RadioButton denetimini kullanmayı düşünebilirsiniz.

2

Bir ComboBox öğesini DropDownStyle özelliği ile DropDownList ve SelectedIndex olarak 0 (veya varsayılan öğe ne olursa olsun) olarak kullanabilirsiniz. Bu, seçilen listeden her zaman bir öğeye sahip olmaya zorlayacaktır. Bunu yapmayı unutursanız, kullanıcı düzenleme kutusu kısmına başka bir şey yazabilirdi - bu da kötü olurdu :)

1

Kullanıcıya küçük bir seçim listesi veriyorsanız, radyo düğmelerine dokununuz. Ancak, dinamik veya uzun listeler için açılan kutuyu kullanmak isteyecekseniz. Stili DropDownList olarak ayarlayın.

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 
İlgili konular