异常内容具体如下:
除非 DataGridView 被数据绑定到支持更改通知并允许删除的 IBindingList,否则不能以编程方式移除行。
在 System.InvalidOperationException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常
源代码:
 private void picDelete_Click(object sender, EventArgs e)
  {  if (dgvEmpNews.RowCount >= 0)
  {
  int i;  //获取选中行的索引
  i = dgvEmpNews.CurrentRow.Index;  //确定员工信息是否删除?
  try
  {
  if (DialogResult.OK == MessageBox.Show("确定要删除该员工信息吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
  {
  objBLLEmpManage.DeleteEmployee((int)dgvEmpNews.Rows[i].Cells["colID"].Value);
  dgvEmpNews.Rows.RemoveAt(i);
  }
  }
  catch (Exception ex)
  {
  Console.WriteLine(ex.Message);
  }
  }
  else
  MessageBox.Show("当前没有员工的信息可以删除!");
  }

解决方案 »

  1.   

    好像是数据源的问题,将dgvEmpNews.Rows.RemoveAt(i)删掉,然后利用窗口的Actived事件更新窗口的datagridview控件的数据就可以了。
      

  2.   

    尝试下把datagridview的allowusertoaddrow属性  改为false
      

  3.   

    你都已经删除了干吗还要REMOVE一次呢?不明白。。
      

  4.   

    窗口的数据要和数据库同步更新啊,所以要remove一下吧
      

  5.   

    allowusertoaddrow这个属性设置为false也不行,它只是不允许用户手动添加数据吧
      

  6.   

    我现在是利用数据显示窗口的Actived事件中重新绑定数据源就可以了,大家对Actived事件有什么看法没?