日期:2014-05-17  浏览次数:20929 次

dataGridView多选删除
错误:  在dataGridView 中删除一行数据 但它提示:除非 DataGridView 被数据绑定到支持更改通知并允许删除的 IBindingList,否则不能以编程方式移除行

代码:
 for (int i = 0; i < this.dataGridView1.RowCount; i++)
                {
                    if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value != null)
                    {
                        if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value.ToString().ToLower() == "true")
                        {
                            this.dataGridView1.Rows.RemoveAt(i);
                        }
                    }
                }


 这句报的错 this.dataGridView1.Rows.RemoveAt(i);

------解决方案--------------------
遍历删除一定要从后往前删,如果从前往后删,会改变Count和Index导致i大于Count出异常

 for (int i = this.dataGridView1.RowCount-1; i >=0; i--)
                {
                    if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value != null)
                    {
                        if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value.ToString().ToLower() == "true")
                        {
                            this.dataGridView1.Rows.RemoveAt(i);
                        }
                    }
                }
------解决方案--------------------
你数据绑定的代码贴出来看看
------解决方案--------------------
在数据源中删除数据,刷新显示控件。
 http://www.cnblogs.com/winzheng/archive/2009/05/25/1488960.html参考
------解决方案--------------------
 从list1里把数据删除。在重新绑定
------解决方案--------------------