【问题标题】:How to empty the cells of a DataGridView in C#?如何在 C# 中清空 DataGridView 的单元格?
【发布时间】:2009-11-30 09:53:26
【问题描述】:

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

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

我有一个绑定到数据源的 DataGridView。

所以:

MyDataGridView.DataSource = null;

不会工作...

我也试过

MyDataGridView.Rows.Clear();

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

所以我现在正在寻找一种方法来清空所有单元格的内容(不包括标题单元格)。所以它不应该影响其他任何东西,除了单元格本身的内容。

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:
    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;
          }
      }
    

    【讨论】:

    • 添加一些解释
    • MyDataGridView.Rows[j].Cells[i].Value = null; 更喜欢它。不要使用 DBNull.Value,除非它引用了数据库字段。
    【解决方案2】:

    我自己想出了怎么做,我只是在桌子上循环,清除我遇到的每个单元格。

    注意:“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 = "";
              }
          }
    

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

    【讨论】:

    • 如果您的行实际上没有绑定到任何东西,这可能是最好的方法。
    【解决方案3】:

    pieter888 的代码对我不起作用,我发现的代码是

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

    【讨论】:

      【解决方案4】:

      我相信使用 LINQ 可以让它更简洁,尤其是隐式类型:

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

      【讨论】:

        【解决方案5】:

        您可以使用清除整个网格

        gridviewname.columns.clear();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-02
          • 2012-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多