Вопрос

В .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 не может быть изменен, потому что каждый раз, когда пользователь пытается его проверить / снять, обработчик событий изменяет его обратно.Вы даже не видите соответствующего обновления пользовательского интерфейса.

Другие советы

Код Мэтта хорош.

И все же, зачем иметь элемент в списке отмеченных и не позволять ему быть выбранным?
Я имею в виду, зачем включать этот элемент в список.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top