2008-08-18 13 views
5

Quelle est la meilleure façon d'implémenter une option à choix multiples dans Windows Forms? Je souhaite appliquer une sélection unique à partir d'une liste, en commençant par une valeur par défaut.Choix multiple sur WinForms

Il semble qu'un ComboBox serait un bon choix, mais existe-t-il un moyen de spécifier une valeur par défaut non vide?
Je pourrais juste le mettre dans le code à un point d'initialisation approprié, mais j'ai l'impression qu'il me manque quelque chose.

Répondre

8

Si vous ne voulez qu'une seule réponse du groupe, un contrôle RadioButton serait votre meilleur choix ou vous pourriez utiliser la ComboBox si vous avez beaucoup d'options. Pour définir une valeur par défaut, ajoutez simplement l'élément à la collection de ComboBox et définissez SelectedIndex ou SelectedItem à cet élément.

En fonction du nombre d'options que vous consultez, vous pouvez utiliser un contrôle ListBox avec la propriété SelectionMode définie sur MultiSimple, s'il s'agit d'un choix multiple ou si vous pouvez utiliser le contrôle CheckBox.

2

Utilisez la propriété ComboBox.SelectedItem ou SelectedIndex après que les articles ont été insérés pour sélectionner l'élément par défaut.

Vous pouvez également utiliser le contrôle RadioButton pour appliquer la sélection d'une seule option.

2

Vous pouvez utiliser un ComboBox avec la propriété DropDownStyle définie sur DropDownList et SelectedIndex sur 0 (ou quel que soit l'élément par défaut). Cela forcera toujours à avoir un élément de la liste sélectionnée. Si vous oubliez de le faire, l'utilisateur pourrait simplement taper quelque chose d'autre dans la zone d'édition - ce qui serait mauvais :)

1

Si vous donnez à l'utilisateur une petite liste de choix, respectez les boutons radio. Cependant, si vous voulez vouloir utiliser la liste déroulante pour les listes dynamiques ou longues. Définissez le style sur 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