我已经在SO上找到了类似的问题,实际上是整个网络。虽然我还没有找到合适的答案。
所以我使用Visual Studio 2008在Windows窗体应用程序中工作。语言是C#
我有一个不绑定到DataSource的DataGridView。
这样:
MyDataGridView.DataSource = null;
不会工作......
我也试过
MyDataGridView.Rows.Clear();
但是这会删除我自定义的所有行。
所以我现在正在寻找一种方法来清空所有单元格的内容(不包括标题单元格)。所以它不应该影响细胞本身的内容。
答案 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();