непроверенные элементы в CheckedListBox?
-
03-07-2019 - |
Вопрос
В .NET Framework возможно ли установить некоторые элементы в CheckedListBox
как "непроверяемый"?Я не хочу разрешать пользователю снова проверять одни и те же элементы и добавлять их в другой существующий список.
Надеюсь, я ясно выразился.Заранее благодарю.
Решение
Я бы установил эти элементы как "Неопределенные" в коде, а затем перезаписал свойство "newValue" из события ItemCheck, когда пользователь пытается их проверить / снять:
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;
}
}
Элемент "Не удается меня проверить" в CheckedListBox не может быть изменен, потому что каждый раз, когда пользователь пытается его проверить / снять, обработчик событий изменяет его обратно.Вы даже не видите соответствующего обновления пользовательского интерфейса.
Другие советы
Код Мэтта хорош.
И все же, зачем иметь элемент в списке отмеченных и не позволять ему быть выбранным?
Я имею в виду, зачем включать этот элемент в список.