Opción múltiple en WinForms
Pregunta
¿Cuál es la mejor manera de implementar una opción de opción múltiple en Windows Forms?Quiero aplicar una única selección de una lista, comenzando con un valor predeterminado.
Parece que un ComboBox sería una buena opción, pero ¿hay alguna manera de especificar un valor predeterminado que no esté en blanco?
Podría configurarlo en el código en algún punto de inicialización apropiado, pero siento que me falta algo.
Solución
Si solo desea una respuesta del grupo, entonces un control RadioButton sería su mejor opción o puede usar ComboBox si tiene muchas opciones.Para establecer un valor predeterminado, simplemente agregue el elemento a la colección de ComboBox y configure SelectedIndex o SelectedItem para ese elemento.
Dependiendo de cuántas opciones esté viendo, puede usar un ListBox con la propiedad SelectionMode establecida en MultiSimple, si será de opción múltiple o puede usar el control CheckBox.
Otros consejos
Debería poder configurar la propiedad ComboBox.SelectedIndex con el valor predeterminado que desea.
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx
Utilizar el ComboBox.Elemento seleccionado o Índice seleccionado propiedad después de que se hayan insertado los elementos para seleccionar el elemento predeterminado.
También podrías considerar usar Boton de radio control para imponer la selección de una sola opción.
Puedes usar un ComboBox con el Estilo desplegable propiedad establecida en DropDownList y SelectedIndex en 0 (o cualquiera que sea el elemento predeterminado).Esto obligará a tener siempre seleccionado un elemento de la lista.Si olvida hacer eso, el usuario podría simplemente escribir algo más en la parte del cuadro de edición, lo cual sería malo :)
Si le está dando al usuario una pequeña lista de opciones, quédese con los botones de opción.Sin embargo, si lo desea, utilice el cuadro combinado para listas dinámicas o largas.Establezca el estilo en 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