【问题标题】:Adding a DataGridViewCheckBoxColumn添加 DataGridViewCheckBoxColumn
【发布时间】:2012-11-20 10:12:54
【问题描述】:

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

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

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

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

如何向现有列添加复选框?

【问题讨论】:

  • 我认为您必须删除该特定列(使用RemoveAt),然后在所需索引处插入一个新列,例如grid.Columns.Insert(index, new DataGridViewCheckBoxColumn())
  • 如果您的列的数据类型是位或布尔型,该列会自动显示为checkBoxColumn,在您的情况下它不是这样工作的吗??
  • 您是否尝试过根据您的 xml 创建一个 DataTable 对象,然后将其绑定到 datagridview 而不是单独创建每一列?
  • @SamyS.Rathore 我不知道。我还没有将数据绑定到 DataGridView。感谢您提供的信息 :) GxG:不,我正在考虑一种更简单的方法来解决它。我通常使用 DataReaders。不是数据表。

标签: c# datagridview datagridviewcheckboxcell


【解决方案1】:

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

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

【讨论】:

  • 试过这个方法,效果很好。我想我会继续这个。非常感谢:)
【解决方案2】:

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

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

然后你可以插入想要的像

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

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

【讨论】:

  • 我试过这个方法,它确实有效。但是,它会让我重复代码很多次,因为除了我在问题中显示的列之外,我还有一些列需要复选框列。所以我认为最好使用 Flynn1179 方法,这样我就可以直接做一次。尽管如此,还是感谢您的帮助:)
【解决方案3】:

你试过了吗:

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

?

这个

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

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

【讨论】:

  • 这是一个获取属性,这甚至不会编译! !您可以使用 cmets 寻求澄清
  • 那么也许使用新的声明而不是声明列数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多