【问题标题】:Insert row in middle of DataGridView (C#)在 DataGridView 中间插入行(C#)
【发布时间】:2012-03-26 06:26:53
【问题描述】:

我想在我的 DataGridView 中的特定索引处插入一个新的 DataGridViewRow。如果我只是像

这样创建一个新行
DataGridViewRow dgwr = new DataGridViewRow();
datagridview1.Rows.Insert(index, dgwr);

我不会获得 DataGridView 的“设置”,例如我的“单元格”将为 0。如果我使用,则不会发生这种情况。

DataGridView1.Add();

但话又说回来,我无法在列表中选择我想要我的帖子的位置...

有没有办法结合这些优点?

/尼克

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:
    grid.Rows.Insert(index, 1);
    var addedRow = grid.Rows[index];
    

    这会在“索引”处插入 1 个空模板行,然后简单地访问“索引”中的行。 第二行用于访问刚刚添加的行。

    如果您知道所需的行值,也可以缩短:

    grid.Rows.Insert(index, FirstName, LastName, BirthDate, Etc);
    

    只需确保它与网格中的列顺序同步,并且它会自动使用这些字段生成行。

    【讨论】:

    • 谢谢!但是,我仍然不知道什么值,所以我希望 Rows[i].Cells 与其他 Rows 一样(与 DataGridView1.ColumnCount 相同的“计数”)。当我使用细胞时,我该怎么做? :)
    • @Nick3 您将其用作网格中的任何其他行。使用细胞是什么意思?
    【解决方案2】:

    DataGridViewDataGridRowView 只是您的数据源和数据源中的一行的直观表示。将新行添加到数据源后,应在 DataView 中显示一个新的可视行。

    如果您想在添加新行时获取视图行,请处理 RowsAdded 事件。

    【讨论】:

    • 我没有数据源,我只是手动在行上添加文本。但是谢谢!
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多