4

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

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

4

2 回答 2

7

我会在代码中将这些项目设置为“不确定”,然后在用户尝试选中/取消选中它们时覆盖 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 中的“Can't check me”项无法修改,因为每次用户尝试选中/取消选中它时,事件处理程序都会将其更改回来。您甚至看不到相应的 UI 更新。

于 2008-12-30T22:12:53.227 回答
-1

马特的代码很好。

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

于 2008-12-30T22:40:15.873 回答