在.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更新。