2013-02-22 72 views
1

我有一个DataGridView有几列,你如何清除整个列的数据?你如何清除整个datagridview列

+1

循环遍历所有行,仅清除该列中包含的单元格。 – 2013-02-22 23:53:06

+0

winforms或webforms? – scartag 2013-02-22 23:54:54

+0

获胜形式,虽然列没有默认的清除功能? – ploxtic 2013-02-28 00:56:37

回答

2

简单循环行和清除细胞:

foreach (DataGridViewRow myRow in dataGridView1.Rows) 
{ 
    myRow.Cells[0].Value = null; // assuming you want to clear the first column 
} 
-1

要清除特定列

dataGridView1.Rows[<ROW_INDEX>].Cells[<CELL_INDEX>].Value = null 
+0

你试过了吗?根据我的阅读,这应该将特定单元格的值清除为特定行 – Baral 2013-06-20 18:19:28

0

您的意思是

dataGridView1.Rows.Clear(); 

如果”重新使用BindingSource

bindingSource1.Clear(); 

或者如果你想清除DataGridView Columns

dataGridView1.Columns.Clear(); 
1

嗯,我知道它已经有一段时间,但这里是我做了什么..我只是列复制到一个临时变量,删除从DataGridView中列最后插入临时列到datagridview的......这样一来,我就不必循环,虽然所有的行...

喜欢的东西:

var tmp = dgv.Columns[3]; 
dgv.Columns.Remove(dgv.Columns[3]); 
dgv.Columns.Insert(3, tmp); 

我还编写的扩展,有一个更容易阅读代码:

public static class Extensions 
{ 
    public static void ClearColumn(this DataGridView dgv, int columnIndex) 
    { 
     if (dgv.Columns != null && dgv.Columns.Count - 1 >= columnIndex) 
     { 
      var tmpCol = dgv.Columns[columnIndex]; 
      dgv.Columns.Remove(dgv.Columns[columnIndex]); 
      dgv.Columns.Insert(columnIndex, tmpCol); 
     } 
    } 
} 

只要使用这样的:

Datagridview1.ClearColumn(3); 
0

您可以使用这样的事情。假设您要清除第0列。

var myColumn = myDataGridView.Columns[0]; 

for (int i = 0; i < myColumn.Cells.Count; i++) 
    column.Cells[i].Value = null; 
+0

这实际上不起作用,“DataGridViewColumn”没有“单元格”索引器。 – dashnick 2017-09-30 16:50:32