elementi non selezionabili in CheckedListBox?
-
03-07-2019 - |
Domanda
In .NET framework, è possibile impostare alcuni degli elementi in CheckedListBox
come " uncheckable " ? Non voglio consentire all'utente di controllare nuovamente gli stessi elementi e di aggiungerli a un altro elenco esistente.
Spero di essere chiaro. Grazie in anticipo.
Soluzione
Vorrei impostare tali elementi come "Indeterminato" nel codice, quindi sovrascrivere " NewValue " proprietà dall'evento ItemCheck quando l'utente tenta di selezionarli / deselezionarli:
public Form1()
{
InitializeComponent();
checkedListBox1.Items.Add("Can't check me", CheckState.Indeterminate);
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.CurrentValue == CheckState.Indeterminate)
{
e.NewValue = CheckState.Indeterminate;
}
}
Il " Non riesco a controllarmi " l'elemento in CheckedListBox non può essere modificato, poiché ogni volta che l'utente tenta di selezionarlo / deselezionarlo, il gestore eventi lo cambia di nuovo. Non vedi nemmeno l'aggiornamento dell'interfaccia utente di conseguenza.
Altri suggerimenti
Il codice di Matt è buono.
Tuttavia, perché un elemento nella casella di controllo e non lasciarlo selezionato?
Intendo perché avere quell'elemento nell'elenco.