如何在C#中清空DataGridView的单元格?

时间:2009-11-30 09:53:27

标签: c# datagridview clear

我已经在SO上找到了类似的问题,实际上是整个网络。虽然我还没有找到合适的答案。

所以我使用Visual Studio 2008在Windows窗体应用程序中工作。语言是C#

我有一个绑定到DataSource的DataGridView。

这样:

MyDataGridView.DataSource = null;

不会工作......

我也试过

MyDataGridView.Rows.Clear();

但是这会删除我自定义的所有行。

所以我现在正在寻找一种方法来清空所有单元格的内容(不包括标题单元格)。所以它不应该影响细胞本身的内容。

5 个答案:

答案 0 :(得分:3)

for (int i = 0; i < MyDataGridView.Columns.Count ;i++ )
  {
      for (int j = 0; j < MyDataGridView.Rows.Count; j++)
      {
           MyDataGridView.Rows[j].Cells[i].Value = DBNull.Value;
      }
  }

答案 1 :(得分:0)

我只想弄清楚自己该怎么做,我只是循环通过桌子,清理我遇到的每一个细胞。

注意:“dgUsers”是我的DataGridView的名称

for (int i = 0; i < dgUsers.Columns.Count ;i++ )
      {
          for (int j = 0; j < dgUsers.Rows.Count; j++)
          {
               dgUsers.Rows[j].Cells[i].Value = "";
          }
      }

我敢打赌,有一个更好的方法可以做到这一点,这可能看起来有点草率,但它确实起了作用。然而,我想听一个清除数据的更好的解决方案。

答案 2 :(得分:0)

pieter888的代码对我来说没有用,我发现的代码是

int cnt=dataGridView1.Rows.Count;
        for (int i = 0; i < cnt; i++)
        {
            dataGridView1.Rows.Remove(dataGridView1.Rows[0]);
        } 

答案 3 :(得分:0)

我相信使用LINQ可以使它更清晰,特别是隐式类型:

    foreach (var cell in from DataGridViewRow row in dgv.Rows from DataGridViewCell cell 
    in row.Cells select cell){
        cell.Value = string.Empty;
     }

答案 4 :(得分:-2)

您可以使用

清除整个网格
gridviewname.columns.clear();