0

我已经通过代码向这样的 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";

现在我想让第三列显示复选框(该列的行,而不是标题)。我做了相当多的搜索,遇到了像这样的文章,但那里显示的方法只会插入一个带有复选框的新列。

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

我需要的是在已经存在的列中添加一个复选框列。不幸的是,我找不到任何相关的信息。

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

4

3 回答 3

3

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

dgvDocDisplay.Columns.AddRange(
    new DataGridViewColumn[]
    {
        new DataGridViewTextBoxColumn { Name = "Tag" },
        new DataGridViewTextBoxColumn { Name = "[ ]" },
        new DataGridViewCheckBoxColumn { Name = "#" },
        new DataGridViewTextBoxColumn { Name = "Type" }
        // etc
    });
于 2012-11-20T10:23:12.423 回答
1

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

你可以grid.RemoveAt(yourindex);用来删除

然后您可以插入所需的

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

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

于 2012-11-20T10:29:18.537 回答
0

你有没有尝试过:

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

?

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

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

于 2012-11-20T10:19:24.737 回答