禁用带有复选框的ListView中的单个复选框

时间:2012-05-11 08:41:28

标签: c# .net winforms listview checkbox

我有一个带复选框的ListView:

        listView1.View = View.Details;
        listView1.CheckBoxes = true;

        ListViewItem item1 = new ListViewItem("ONE");
        ListViewItem item2 = new ListViewItem("TWO");
        ListViewItem item3 = new ListViewItem("THREE");

        listView1.Items.Add(item1);
        listView1.Items.Add(item2);
        listView1.Items.Add(item3);

我想只禁用第二个复选框,是否可以?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我认为您可以使用 DrawItem 事件与所有者绘图。在事件处理程序中,在复选框上绘制一个填充了 SystemColors.Window 的矩形以隐藏它。

我还实现了隐藏在第三方控件Better ListView Express中的复选框。项目有一个名为 AllowShowCheckBox 的布尔属性,您可以在每个项目上分别设置为false。它还支持三态复选框。