Tengo un ListBox con un montón de artículos. El usuario puede hacer clic en un elemento para editar su contenido. ¿Cómo evito que el usuario anule la selección de todos los elementos? es decir, el usuario no debería poder tener nada seleccionado.¿Impedir que el usuario anule la selección de un elemento en un ListBox?
Respuesta
Hay un caso que falta en su situación, que es cuando la lista se borra se le vuelve a seleccionar un artículo ya no está en la lista. Resuelvo esto agregando un cheque adicional.
var listbox = ((ListBox)sender);
if (listbox.SelectedItem == null)
{
if (e.RemovedItems.Count > 0)
{
object itemToReselect = e.RemovedItems[0];
if (listbox.Items.Contains(itemToReselect))
{
listbox.SelectedItem = itemToReselect;
}
}
}
Luego puse este inside a behaviour.
No estoy seguro de si existe una forma directa de deshabilitar la anulación de la selección de un elemento, pero una forma transparente para el usuario es realizar un seguimiento del último elemento seleccionado y siempre que se produzca el evento SelectionChanged y el el índice seleccionado es -1, luego vuelva a seleccionar el último valor.
Extraño ... Solo veo un evento 'SelectionChanged'. Sin embargo, definitivamente es un 'ListBox' ... usando WPF y .net 4 ... – mpen
@Mark: Correcto, los enlaces de las publicaciones de amccormack son para winforms (espacio de nombres Windows.Forms). La esencia de la respuesta aún se aplica, sin embargo. –
Para deshabilitar una o más opciones en su cuadro de lista/menú desplegable, puede agregar el atributo "deshabilitado" como se muestra a continuación. Esto evita que el usuario seleccione esta opción, y obtiene una superposición gris.
ListItem item = new ListItem(yourvalue, yourkey);
item.Attributes.Add("disabled","disabled");
lb1.Items.Add(item);
Creo que esto es lo opuesto a lo que quería cuando formulé esta pregunta. Quería evitar que los usuarios * anularan la * opción, no la seleccionen. A menos que quiera decir que podría deshabilitar el último elemento de la lista cuando están en 1 ... pero no estoy seguro si eso me daría el comportamiento deseado o no. – mpen
Una solución, según lo sugerido por amccormack
:
private void hostsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(lstHosts.SelectedItem == null)
{
if(e.RemovedItems.Count > 0)
{
lstHosts.SelectedItem = e.RemovedItems[0];
}
Esto funciona para segura de prevenir el usuario del Deseleccionar ... Añadir esas 2 Eventos a su CheckedListBox1 y establecer la propiedad CheckOnClick en "True" en Modo de diseño. (MSVS2015)
private void checkedListBox1_SelectedValueChanged(object sender, EventArgs e)
{
checkedListBox1.SetItemChecked(checkedListBox1.SelectedIndex, true);
}
private void checkedListBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
checkedListBox1.SetItemChecked(checkedListBox1.SelectedIndex, true);
}
- 1. Impedir que se agreguen elementos duplicados a un ListBox
- 2. Cómo evitar que WPF DataGrid anule la selección de elemento seleccionado cuando se actualizan los elementos?
- 3. JList - anule la selección al hacer clic en un elemento ya seleccionado
- 4. Winforms - Cómo evitar la selección del elemento Listbox
- 5. Impedir selección en HTML
- 6. WPF Color de selección ListBox
- 7. selección Impedir Shift + Clic
- 8. WPF: ¿Cancelar una selección de usuario en un ListBox de datos?
- 9. Hacer que los elementos de ListBox tengan un valor diferente que el texto del elemento
- 10. Impedir que un usuario elimine, mueva o cambie el nombre de un archivo
- 11. WPF: ¿cómo manejo un clic en un elemento de ListBox?
- 12. Windows Phone 7 animación ListBox en la selección
- 13. ¿Cómo deseleccionar un elemento en un cuadro de selección?
- 14. Impedir que el usuario ingrese caracteres en un campo de texto en SWT
- 15. jQuery UI seleccionable: anule la selección del elemento al hacer clic
- 16. ¿Puedo usar un método que anule un método no virtual?
- 17. Impedir tabstop en Un elemento (enlace de anclaje) en HTML
- 18. Impedir que un usuario cierre una aplicación que se abre mediante un programa C#
- 19. ¿Cómo puedo evitar que ListBox seleccione un elemento cuando hago clic con el botón derecho?
- 20. Grupo ToggleButton: Asegurar que un elemento siempre esté seleccionado en un ListBox
- 21. GWT ListBox - ¿cómo tener un elemento de la lista deshabilitado?
- 22. contenidos Anule la selección de un cuadro de texto con javascript
- 23. Configuración del elemento seleccionado en un ListBox sin bucle
- 24. Impedir que el botón Atrás cierre un cuadro de diálogo
- 25. Cómo evitar que se anule un método en C#
- 26. ¿Cómo habilitar la selección del usuario en un elemento readOnly html en iPad safari?
- 27. En un Listbox, ¿cómo puedo obtener el ancho del listbox menos el espacio que ocupa la barra de desplazamiento?
- 28. ¿Puedo evitar que un método virtual heredado se anule en subclases?
- 29. ¿Quitar elemento de ListBox?
- 30. javascript selección de usuario que resalta
posible duplicado de [ListBox WPF: no permiten deseleccionar/Suprimir] (http://stackoverflow.com/questions/5815844/wpf-listbox-do-not-allow-unselect-deselect) –