【问题标题】:Clear only 1 row of DataGridView in c#在c#中只清除1行DataGridView
【发布时间】:2015-09-04 03:05:15
【问题描述】:

有没有办法在 c# 中只清除 DataGridView 中的 1 行? 嵌入此代码时的原因

dataGridView1.Rows.Clear();

它会清除我的数据网格中的所有项目。我只想在被按钮触发时清除一个项目行。

任何帮助将不胜感激

【问题讨论】:

    标签: c# visual-studio visual-studio-2010 c#-4.0 datagridview


    【解决方案1】:

    如果您已经拥有该行,则可以像这样删除该行:

    dataGridView1.Rows.Remove(rowToRemove);
    

    或者,您可以像这样删除选定的行:

    var rowToRemove = dataGridView1.Rows[dataGridView1.SelectedCells.Item(0).RowIndex];
    dataGridView1.Rows.Remove(rowToRemove);
    

    或者,像这样:

     dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
    

    或者,如果您想清除所有选定的行:

    foreach (var row in dataGridView1.SelectedRows)
    {
        dataGridView1.Rows.Remove(row);
    }
    

    不过,理想情况下,您可能希望绑定到数据源(通常通过 ViewModel),然后从源中删除选定的数据。

    【讨论】:

    • @JonBonJoviMateo 第二个实现将通过索引清除它。另请参阅更新
    • 行中遇到错误“不能像方法一样使用不可调用的成员'DataGridView.Rows'” ---------- --------------- Item DataGridViewSelectedCellCollection 中遇到错误不包含“item”的定义,并且找不到接受“DataGridViewSelectedCellCollection”类型的第一个参数的扩展方法“item”(是您缺少 using 指令或程序集引用?)
    • @JonBonJoviMateo 查看更新,我的错误,打字太快了。
    【解决方案2】:

    你可以试试这个来删除 dgv 上的当前行。

      YourDGVName.Rows.RemoveAt(YourDGVName.CurrentRow.Index);
    

    您也可以每次取选定的行或特定的行号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      相关资源
      最近更新 更多