【发布时间】:2008-12-30 22:03:23
【问题描述】:
在.NET 框架中,是否可以将CheckedListBox 中的某些项目设置为“不可检查”?我不想让用户再次检查相同的项目并将它们添加到另一个现有列表中。
我希望我很清楚。 提前致谢。
【问题讨论】:
标签: c# list checkedlistbox
在.NET 框架中,是否可以将CheckedListBox 中的某些项目设置为“不可检查”?我不想让用户再次检查相同的项目并将它们添加到另一个现有列表中。
我希望我很清楚。 提前致谢。
【问题讨论】:
标签: c# list checkedlistbox
我会在代码中将这些项目设置为“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 中的“Can't check me”项无法修改,因为每次用户尝试选中/取消选中它时,事件处理程序都会将其改回。你甚至看不到 UI 相应的更新。
【讨论】:
Matt 的代码不错。
然而,为什么在checkedlistbox中有一个项目而不让它被选中?
我的意思是为什么要在列表中包含该项目。
【讨论】: