¿Cómo crear un control de cuadro combinado con elementos no seleccionables? Por ejemplo, nombres de grupo o categoría que dividen visualmente los elementos de la lista desplegable en algunos grupos o categorías.Crear WinForms ComboBox con elementos no seleccionables
Respuesta
En lugar de agregar cadenas a su cuadro combinado, puede agregar una clase especial y usar el elemento seleccionado para determinar si el elemento está seleccionado o no.
public partial class Form1 : Form
{
private class ComboBoxItem
{
public int Value { get; set; }
public string Text { get; set; }
public bool Selectable { get; set; }
}
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
this.comboBox1.ValueMember = "Value";
this.comboBox1.DisplayMember = "Text";
this.comboBox1.Items.AddRange(new[] {
new ComboBoxItem() { Selectable = false, Text="Unselectable", Value=0},
new ComboBoxItem() { Selectable = true, Text="Selectable1", Value=1},
new ComboBoxItem() { Selectable = true, Text="Selectable2", Value=2},
new ComboBoxItem() { Selectable = false, Text="Unselectable", Value=3},
new ComboBoxItem() { Selectable = true, Text="Selectable3", Value=4},
new ComboBoxItem() { Selectable = true, Text="Selectable4", Value=5},
});
this.comboBox1.SelectedIndexChanged += (cbSender, cbe) => {
var cb = cbSender as ComboBox;
if (cb.SelectedItem != null && cb.SelectedItem is ComboBoxItem && ((ComboBoxItem) cb.SelectedItem).Selectable == false) {
// deselect item
cb.SelectedIndex = -1;
}
};
}
}
Este fue mi primer pensamiento también. Sin embargo, puede escribir el texto del elemento en el ComboBox y, por lo tanto, seleccionar el elemento no seleccionable. –
No. En mi caso, uso el estilo DropDownList para que ComboBox deshabilite texteditor. – symantis
Tu código está muy bien y me sirve. Pero otra pregunta: cómo desactivar no solo la selección de elementos en la lista, sino también desactivar el seguimiento de elementos no seleccionables con el mouse. – symantis
un vistazo aquí en CodeProject para un cuadro combinado de sólo lectura, aquí hay otro artículo para hacer la caja readonly combo 'decente' en busca ... Aquí hay otro que muestra cómo reemplazar la caja básica estándar combinado para que sea readonly como sugirió Sani.
- 1. Cómo crear Combobox en winforms readonly
- 2. Winforms Combobox - no permite que el usuario edite elementos
- 3. hacer elementos Listbox en WPF no seleccionables
- 4. Readonly ComboBox en WinForms
- 5. .NET WinForms ComboBox, elementos idénticos y el evento SelectedIndexChanged
- 6. WPF ListBox transparente con elementos seleccionables
- 7. Combobox con casilla de verificación en winforms
- 8. C# winforms combobox dynamic autocomplete
- 9. combobox valor predeterminado winforms C#
- 10. Elementos seleccionables Elemento de control en WPF
- 11. Estilo Elementos WPF ComboBox
- 12. Id oculto con elementos de ComboBox?
- 13. Controles ComboBox de varias columnas para Winforms
- 14. Haciendo cosas no seleccionables en IE
- 15. Columnas no seleccionables en la tabla HTML
- 16. WinForms ComboBox SelectedIndexChanged no disparar al escribir algunos caracteres seguido de Alt + Abajo
- 17. Establecer todas las celdas JTable no seleccionables
- 18. Agrupación de elementos en un ComboBox
- 19. Agregar elementos a comboBox en WPF
- 20. iPhone, Mapa, áreas no rectangulares seleccionables
- 21. Elementos seleccionables centrados con el margen: 0 auto ajusta a la izquierda mientras ordena
- 22. ComboBox SelectedValue no muestra
- 23. C# Messagebox Con ComboBox
- 24. ComboBox editable con enlace al valor no en la lista
- 25. ComboBox Autocompletar en SubString
- 26. cómo enlazar ComboBox con DataTable
- 27. ¿Cómo crear múltiples elementos HTML con jQuery?
- 28. ¿Artículos de menú seleccionables mutuamente exclusivos?
- 29. ¿Puedo incrustar un ComboBox y un botón simple en un StatusStrip en WinForms?
- 30. WPF ComboBox no actualiza fuente
¿Forma o formulario web? –
Puede dar un poco más de detalle. ¿Es este WPF, Windows Forms o algún otro marco de interfaz de usuario? – mattythomas2000