麻烦来了.我想从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)));
}
}
Run Code Online (Sandbox Code Playgroud)
它是如何清除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);
}
Run Code Online (Sandbox Code Playgroud)
在调试中,我看到dataGridVIew1.Rows.Count = 0,但在表单上,网格并没有变得清晰.什么意思?在树中的每个选择,我想看到表中的新行.
我正在做这个测试,我需要每4秒用数据重新加载datagridview,数据来自数据库.
所以我通过代码创建了一个计时器控件,并为事件添加了一个事件处理程序tick.然后在tick事件中
void t1_Tick(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
dataGridView1.Rows.Clear();
dt = Product.GetAllProductsBasicInfo();
dataGridView1.DataSource = dt;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作,但当我移动
dataGridView1.Rows.Clear();
Run Code Online (Sandbox Code Playgroud)
之前
dataGridView1.DataSource = null;
Run Code Online (Sandbox Code Playgroud)
它会抛出一个运行时错误,说行无法清除,我想知道它为什么抛出这个错误,通常Clear()清除datagridview?
谢谢
在DataGridView中,当我设置dataGridView.DataSource = null或dataGridView.DataSource = false,它删除我设置的所有默认设置(属性).
它的外观没有设置DataSource到null(见Mark列实际上是DataGridViewComboBoxColumn)
设置DataSource为null或false在DataGridView中加载项后:
看到这里Id列是可见的,默认情况下我设置了可见的false(从属性窗口).该Mark专栏也DataGridViewTextBoxColumn来自DataGridViewComboBoxColumn.
我真正想要的是:我只想清除所有行(换句话说,我想在从数据库中删除记录后将DataGridView设置为空白).像这个:
我在这做错了什么?
为什么这不起作用?
//::::::::::::::::::::::::::::::::::::
private void uxClearButton_Click(object sender, EventArgs e)
{
clearDGV();
}
void clearDGV()
{
// remove selected rows
foreach (DataGridViewRow row in uxDGV.Rows)
{
uxDGV.Rows.Remove(row);
}
}
//:::::::::::::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)
DGV未绑定,用户已在其中键入信息.
我得到的错误是 InvalidOperationException was unhandled Uncommitted new row cannot be deleted.
编辑
好的 - 感谢Steve等鼓励我为自己找到答案!!
uxChargeBackDataGridView.Rows.Clear();
Run Code Online (Sandbox Code Playgroud)