непроверяемые элементы в CheckedListBox? - PullRequest
4 голосов
/ 31 декабря 2008

В .NET Framework, можно ли установить некоторые элементы в CheckedListBox как "не проверяемые"? Я не хочу, чтобы пользователь мог снова проверить те же элементы и добавить их в другой существующий список.

Надеюсь, мне ясно. Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 31 декабря 2008

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

0 голосов
/ 31 декабря 2008

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

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

...