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

最佳答案

我会在代码中将这些项设置为“不确定”,然后在用户尝试选中/取消选中它们时覆盖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;
    }
}

无法修改选中列表框中的“无法选中我”项,因为每次用户尝试选中/取消选中它时,事件处理程序都会将其重新更改。你甚至看不到相应的ui更新。

10-04 14:00