添加DataGridViewCheckBoxColumn

时间:2012-11-20 10:12:54

标签: c# datagridview datagridviewcheckboxcell

我已经通过代码向DataGridView添加了一堆列。

dgvDocDisplay.ColumnCount = 22;
dgvDocDisplay.Columns[0].Name = "Tag";
dgvDocDisplay.Columns[1].Name = "[ ]";
dgvDocDisplay.Columns[2].Name = "#";
dgvDocDisplay.Columns[3].Name = "Type";
dgvDocDisplay.Columns[4].Name = "Reference";

现在我想制作第3列显示复选框(该列的行,而不是标题)。我做了很多搜索,遇到过像this这样的文章,但是那里显示的方法只会插入带有复选框的 new 列。

DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
dgvDocDisplay.Columns.Add(col);

我需要的是将复选框列添加到现有列。不幸的是我找不到任何相关的东西。

如何将复选框添加到现有列?

3 个答案:

答案 0 :(得分:3)

如果您自己添加列,为什么不在添加列时添加所需的列类型?像这样:

dgvDocDisplay.Columns.AddRange(
    new DataGridViewColumn[]
    {
        new DataGridViewTextBoxColumn { Name = "Tag" },
        new DataGridViewTextBoxColumn { Name = "[ ]" },
        new DataGridViewCheckBoxColumn { Name = "#" },
        new DataGridViewTextBoxColumn { Name = "Type" }
        // etc
    });

答案 1 :(得分:1)

您必须从集合中删除当前列,然后在该位置推入所需类型的新列。

您可以使用grid.RemoveAt(yourindex);删除

然后您可以插入所需的

grid.Columns.Insert(yourindex, new DataGridViewCheckBoxColumn())

或者您可以只使用grid.Columns.Add(new DataGridViewCheckBoxColumn()),然后将此列的DisplayIndex属性设置为您需要的索引。

答案 2 :(得分:0)

你试过了吗?

dgvDocDisplay.Columns[2] = new DataGridViewCheckBoxColumn();

这个

DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
dgvDocDisplay.Columns.Add(col);

确实添加了一个新列,因此Columns.Add()