DataGridView.Clear()

麻烦来了 我想从datagridview中删除所有行。 这是我如何添加行:

private void ReadCompleteCallback(object clientHandle, Opc.Da.ItemValueResult[] results) { foreach (Opc.Da.ItemValueResult readResult in results) { dataGridView1.Invoke(new MethodInvoker(() => dataGridView1.Rows.Add(readResult.ItemName, readResult.Quality, readResult.Timestamp,readResult.Value))); } } 

它的如何清除gridview:

 private void treeView1_SelectionsChanged(object sender, EventArgs e) { dataGridView1.Rows.Clear(); items = new Opc.Da.Item[treeView1.SelectedNodes.Count]; foreach (TreeNode x in treeView1.SelectedNodes) { items[treeView1.SelectedNodes.IndexOf(x)] = new Opc.Da.Item(); items[treeView1.SelectedNodes.IndexOf(x)].ItemName = x.Text; } group.AddItems(items); group.Read(group.Items, 123, new Opc.Da.ReadCompleteEventHandler(ReadCompleteCallback), out req); } 

在debugging我看到dataGridVIew1.Rows.Count = 0,但在窗体上,网格不清楚。 什么意思? 在树中的每一个select,我想看到表中的新行。

我打赌你只需要刷新数据网格。 尝试这个:

 dataGridView1.Rows.Clear(); dataGridView1.Refresh(); 

如果这个工作…你可能想重新考虑你的应用程序的这一部分。

如果我没有记错,我将DataSource属性设置为null以清除DataGridView:

 datagridview.DataSource = null; 

清除datagridview写下面的代码:

 dataGridView1.DataSource=null; 

下面的代码行基本上只在数据绑定场景中有用

 datagridview.DataSource = null; 

否则在下面是没有手动填充数据绑定和datagridview时使用

 dataGridView1.Rows.Clear(); dataGridView1.Refresh(); 

所以,先检查你在做什么。

我有这段代码,我希望它可以帮助你。

 int numRows = dgbDatos.Rows.Count; for (int i = 0; i < numRows; i++) { try { int max = dgbDatos.Rows.Count - 1; dgbDatos.Rows.Remove(dgbDatos.Rows[max]); } catch (Exception exe) { MessageBox.Show("You can´t delete A row " + exe, "WTF", MessageBoxButtons.OK, MessageBoxIcon.Information); } } 

尝试将RowCount设置为0(允许用户应该是false),同时调用清除

所有你需要做的就是在你填充之前清除你的数据表…然后把它设置为你的dgv的数据源

尝试:

 datagrid.DataSource = null; datagrid.DataBind(); 

基本上你需要清除绑定到网格的数据源。

如果你想清除一个dataGridView不绑定到DataSource,但手动加载,你可以使用这个简单的代码:

 datagridview.Rows.Clear(); datagridview.Columns.Clear(); 
 dataGridView1.DataSource=null; 

将datasource属性设置为空string,然后调用Clear方法。

这是做到这一点的一种方式:

 datagridview.DataSource = null; datagridview.Refresh(); 

我希望它适合你,因为它为我工作。

简单地说,如果你试图重新绑定你的数据网格视图,只需编码:

 DataGridView1.DataSource = DataSet.Tables["TableName"]; 

要么

 DataGridView.DataSource = DataTable; 

否则,如果你想清除你的数据网格视图只是代码如下:

 DataGridView.DataSource = null; DataGridView.Rows.Clear(); DataGridView.Refresh(); 

并添加任何方法或事件绑定数据网格视图再次下面这行代码….

试试这个方法

 dataGridView1.DataSource = dt; dt.Rows.Clear(); 

试试这个代码

 private void button_Click(object sender, EventArgs e) { if (this.dgInv.DataSource != null) { this.dgInv.DataSource = null; } else { this.dgInv.Rows.Clear(); } } 

我不喜欢与DataSource亲自搞混,所以在与IT朋友讨论这个问题之后,我能够发现这种简单而不影响DataSource的方式。 希望这可以帮助!

 foreach (DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell cell in row.Cells) { cell.Value = ""; } }