【问题标题】:How to uncheck disabled checkedlistbox in c# winforms?如何取消选中 c# winforms 中禁用的选中列表框?
【发布时间】:2016-06-02 04:53:13
【问题描述】:

在上图中,“ug(User Group)”是选中列表框中的一行,启用属性为 false。如何在禁用状态下取消选中“ug(用户组)”。

【问题讨论】:

  • 您需要务实地取消选中它吗?你的要求不够明确
  • 使用 chkListBox.SetItemChecked(1, false);

标签: c# winforms checkedlistbox


【解决方案1】:

你可以轻松使用

checkedListBox1.SetItemChecked(2, false);

checkedListBox1.SetItemCheckState(2, CheckState.Unhecked);

CheckedListBoxEnabled 属性对项目或这两种方法的检查状态没有影响。


MSDN 链接:


更新: 禁用 CheckedListBox 中的单个项目而不是禁用整个控件是不可能开箱即用的。

如果要阻止用户更改某一项特殊项的勾选状态,需要订阅CheckedListBoxItemCheck事件:

checkedListBox1.ItemCheck += (sender, e) =>
{
    if (e.Index == 2)
        e.NewValue = CheckState.Unchecked;
}

在项目的检查状态更改之前触发此事件。 e 是一个 ItemCheckEventArgs,其中包含项目的 Index、其当前的检查状态 (CurrentValue) 和之后的检查状态 (NewValue)。

所以设置e.NewValue = CheckState.Unchecked 可以防止用户再次检查该项目。

【讨论】:

  • 我需要只读且未选中的复选框 Chekedlistbox.SetItemCheckState(2, CheckState.Indeterminate);但我需要从复选框中删除检查
  • @rahuls 不明白你的问题。这正是显示的代码所做的。使用CheckState.Unchecked 而不是Indeterminate
  • CheckState.Unchecked 是正确的,但我需要设置为只读。用户无法检查。
  • @rahuls 更新了我的答案以显示如何防止检查该项目。
猜你喜欢
  • 1970-01-01
  • 2011-05-21
  • 2014-08-01
  • 2013-01-19
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多