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

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

有帮助吗?

解决方案

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

其他提示

马特的代码很好。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top