Um in einer Listbox unveränderliche Items darzustellen habe ich in der Dialogklasse zwei Funktionen hinzugefügt:
SetReadonlyItem (int index, CheckState value) addChkListBoxItem_ItemChanged(object sender, ItemCheckEventArgs e)
Im Konstruktor wird die addChkListBoxItem_ItemChanged dem ItemCheck-Event des CheckedListBox Objekts angemeldet.
Die SetReadonlyItem wird verwendet um ReadOnlyItems zu setzen und ändern.
public partial class SelectDialog : Form { private List<int> readOnlyItems = new List<int>(); public SelectDialog() { InitializeComponent(); this.add_chkListBox.ItemCheck += this.addChkListBoxItem_ItemChanged; } /// <summary> /// Set an CheckListBox item to an readonly item. /// CheckState of readonly items can be changed programmatically but not within dialogbox /// </summary> /// <param name="index">Index of Item</param> /// <param name="value">CheckState of item</param> public void SetReadonlyItem (int index, CheckState value) { this.add_chkListBox.ItemCheck -= this.addChkListBoxItem_ItemChanged; this.add_chkListBox.SetItemCheckState(index, value); this.add_chkListBox.ItemCheck += this.addChkListBoxItem_ItemChanged; if (!this.readOnlyItems.Contains(index)) { this.readOnlyItems.Add(index); } } private void addChkListBoxItem_ItemChanged(object sender, ItemCheckEventArgs e) { if (readOnlyItems.Contains(e.Index)) { e.NewValue = e.CurrentValue; } } }
| Artikel Info | |
|---|---|
| Beschreibung | C-Sharp |
| Stand | Fertig |
| Version | 14.1113 |
| Kategorien | , |
| Programmiersprache | |
|---|---|
| Programmiersprache | C-Sharp |