CheckedListBox中的不可检查项目?

时间:2008-12-30 22:03:23

标签: c# list checkedlistbox

在.NET框架中,是否可以将CheckedListBox中的某些项设置为“uncheckable”?我不想让用户再次检查相同的项目并将它们添加到另一个现有列表中。

我希望我很清楚。 提前谢谢。

2 个答案:

答案 0 :(得分:7)

我会在代码中将这些项设置为“Indeterminate”,然后在用户尝试检查/取消选中时覆盖ItemCheck事件中的“NewValue”属性:

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中的“无法检查我”项目无法修改,因为每次用户尝试检查/取消选中它时,事件处理程序都会将其更改回来。您甚至没有相应地看到UI更新。

答案 1 :(得分:-1)

马特的代码很好。

然而,为什么在checkedlistbox中有一个项目而不让它被选中?
我的意思是为什么列表中有这个项目。