除非 DataGridView 被数据绑定到支持更改通知并允许删除的 IBindingList,否则不能以编程方式移除行
IList list = (IList)dataGridView1.DataSource; list.RemoveAt(dataGridView1.CurrentRow.Index); dataGridView1.DataSource = null; dataGridView1.DataSource = list;
因为你绑定的数据源是list等集合,不是datagridview 指定的数据源,所以可以帮数据源转为list,再从集合类中remove,最后在绑定就ok