【问题标题】:Disabling checkbox for an item in listview control禁用列表视图控件中项目的复选框
【发布时间】:2012-12-20 17:41:49
【问题描述】:

我的ListView 控件中有Checkboxes 并设置为True。 此外,我在ListView 中一一添加项目。它不绑定到 DataSet / DataTable

有时,我会在我的ListView 中添加带有Checkbox.Checked = true 的项目。

i.e. listview1.Items(i).Checked = True

对于将 Checked 属性设置为 true 后的某些项目,我想禁用 Checkbox 以便用户无法取消选中 CheckBox

我正在尝试找出有关如何禁用Checkboxes 的选项,但尚未找到解决方案。

提前致谢。

【问题讨论】:

标签: c# winforms listview checkbox


【解决方案1】:

对我来说,这行得通: 处理 ListView.ItemCheck 事件。

在此处使用以下代码:

private void listView1_BeforeCheck(object sender, ItemCheckEventArgs e)
{
    if (!CheckEnabled(e)) // check somehow if clicked item is disabled
        e.NewValue = e.CurrentValue;
}

【讨论】:

    【解决方案2】:

    这是第 3 方控件,Better ListView,但您可能会感兴趣。它支持自定义复选框的外观和隐藏(最后两项隐藏了复选框):

    要隐藏特定项目上的复选框,使用简单:

    betterListView.Items[0].CheckBoxAppearance = BetterListViewCheckBoxAppearance.Hide;
    

    复选框的正常用法和.NET ListView中的一样,你可以有两态或三态的复选框甚至单选按钮...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 2016-02-13
      相关资源
      最近更新 更多