Come creare il controllo della casella combinata con elementi non selezionabili? Ad esempio, tali nomi di gruppo o nomi di categoria che dividono visivamente gli elementi nell'elenco a discesa in alcuni gruppi o categorie.Creazione di ComboBox WinForms con elementi non selezionabili
risposta
Invece di aggiungere stringhe alla casella combinata, è possibile aggiungere una classe speciale e utilizzare l'elemento selezionato per determinare se l'elemento è selezionato o meno.
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;
}
};
}
}
Questo è stato anche il mio primo pensiero. Tuttavia è ancora possibile digitare il testo dell'elemento nel ComboBox e quindi selezionare l'elemento non selezionabile. –
No. Nel mio caso uso lo stile DropDownList per ComboBox che disabilita texteditor. – symantis
Il tuo codice è molto buono e mi aiuta. Ma un'altra domanda: come disabilitare non solo la selezione degli elementi nell'elenco, ma disabilitare il tracciamento degli oggetti non selezionabili con il mouse. – symantis
Date un'occhiata qui su CodeProject per una sola lettura Casella combinata, ecco un altro articolo per rendere la casella readonly combinata 'decente' cercando ... Ecco un altro che mostra come sovrascrivere la casella standard di base combinata per renderlo readonly come suggerito da Sani.
- 1. creazione di "pulsanti" selezionabili C++
- 2. Controlli ComboBox multicolonna per Winforms
- 3. combobox valore predefinito winforms C#
- 4. Gli elementi ListView non sono selezionabili. perché?
- 5. ID nascosto con elementi ComboBox?
- 6. ComboBox che non aggiorna DataBindings sull'elemento selezionato modificato (WinForms)
- 7. Winforms Combobox - non consentire all'utente di modificare gli articoli
- 8. Elementi selezionabili Elemento di controllo in WPF
- 9. Combobox Javascript con elementi typeahead e gerarchici
- 10. Styling Elementi ComboBox WPF
- 11. Come disabilitare la modifica di elementi in combobox per C#?
- 12. Oggetti ListView non selezionabili con HorizontalScrollView all'interno di
- 13. Elementi ComboBox tramite Scene Builder?
- 14. Rimozione di elementi duplicati da un elenco Python contenente elementi non selezionabili conservando l'ordine?
- 15. Come ottenere valore ValueMember da ComboBox C# Winforms?
- 16. Elementi ComboBox vuoti ma DataSource Full
- 17. Imposta valori JList non selezionabili
- 18. Colonne non selezionabili nella tabella HTML
- 19. Aggiorna elementi ComboBox, modo più semplice
- 20. Aspetto Combobox
- 21. È possibile modificare una combobox di Winforms per disabilitare la digitazione in esso?
- 22. Ricerca di un ComboBox WPF con caselle di controllo
- 23. Creazione di query LINQ dinamiche basate sul valore di Combobox
- 24. Delphi Aggiunta di elementi alla velocità di ComboBox
- 25. Optgroup selezionabili in Select2
- 26. UISearchController in un UITableViewController - Le righe non selezionabili e la vista tabella non sono selezionabili
- 27. ComboBox di CheckBox?
- 28. ComboBox con articolo vuoto?
- 29. C# Messagebox Con ComboBox
- 30. ComboBox SelectedValue non mostra
Winform o webform? –
Puoi dare un po 'più di dettaglio. Questo WPF, Windows Form o qualche altro framework UI? – mattythomas2000