可以在运行时从.NET WinForms ListView中删除复选框吗?

时间:2009-04-24 14:44:22

标签: c# .net winforms listview checkbox

是否可以在运行时从.NET WinForms ListView控件中删除复选框?

当'.Checkboxes'最初设置为'true'并且控件已呈现到一个表单上时,以下代码似乎无效,其中每个列表视图项都有可用的复选框:

// C#:
testListView.BeginUpdate();  
testListView.Checkboxes = false;  
testListView.EndUpdate();  

是否必须调用方法来实施此更改?当默认为'false'时提供.Checkboxes属性有什么用,如果设置为'true'则只有效果?

1 个答案:

答案 0 :(得分:3)

我刚刚使用VS 2008使用以下代码创建了一个示例项目,它似乎有效:

 private void Form1_Load(object sender, EventArgs e)
    {
        for (int i = 0; i < 10; i++)
        {
            ListViewItem lvi = new ListViewItem("Test");
            listView1.Items.Add(lvi);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        listView1.CheckBoxes = false;
    }

我的listview的属性如下:

        this.listView1.CheckBoxes = true;
        this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
        this.columnHeader1});
        this.listView1.GridLines = true;
        this.listView1.Location = new System.Drawing.Point(12, 12);
        this.listView1.Name = "listView1";
        this.listView1.Size = new System.Drawing.Size(224, 174);
        this.listView1.TabIndex = 0;
        this.listView1.UseCompatibleStateImageBehavior = false;
        this.listView1.View = System.Windows.Forms.View.Details;