Deaktivierte Elemente in CheckedListBox?
-
03-07-2019 - |
Frage
In .NET Framework ist es möglich, einige der Elemente in der festzulegen CheckedListBox
als "unkontrollierbar"? Ich möchte den Benutzer nicht erlauben, dieselben Elemente erneut zu überprüfen und sie einer anderen vorhandenen Liste hinzuzufügen.
Ich hoffe ich bin klar. Danke im Voraus.
Lösung
Ich würde diese Elemente in Code als "unbestimmt" einstellen und dann die Eigenschaft "NewValue" aus dem ItemCheck -Ereignis überschreiben, wenn der Benutzer versucht, sie zu überprüfen/zu deaktivieren:
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;
}
}
Das Element "Ich kann mich nicht überprüfen" in der CheckedListBox kann nicht geändert werden, da der Benutzer jedes Mal, wenn der Benutzer versucht, ihn zu überprüfen/zu deaktivieren, den Ereignishandler zurückwechselt. Sie sehen das UI -Update nicht einmal entsprechend.
Andere Tipps
Matts Code ist gut.
Warum haben Sie jedoch ein Element in der CheckedListBox und lassen Sie es nicht ausgewählt?
Ich meine, warum dieses Element in der Liste haben.