问题描述
如题直接上代码:privatevoidtSBDelDev_Click(objectsender,EventArgse)//删除{try{if(dataGridView1.SelectedRows!=null){Invoke(newAction(delegate{dataGridView1.Rows.Remove(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex]);}));}else{MessageBox.Show("请先选择一个设备!");}}catch(Exceptionex){MessageBox.Show("删除失败"+ex.ToString());}}privatevoidLoadSaveData()//读取文件自动添加行{DataTabledt=newDataTable();DataSetds=newDataSet();if(File.Exists(xmlfile)){ds.ReadXml(xmlfile);if(ds.Tables.Count>0){dt=ds.Tables[0];foreach(DataRowrowindt.Rows){varmodel=newDevModel();model._DevAddress=row["DevAddress"].ToString();model._DevGrallay=row["DevGrallay"].ToString();model._DevName=row["Name"].ToString();if(!dicDev.ContainsKey(model._DevAddress+model._DevGrallay)){dataGridView1.Rows.Add(newobject[11]{model._DevName,model._DevAddress,model._DevGrallay,"","","","","","","",""});}}}}}第二次发帖了有人帮忙看看吗?
解决方案
解决方案二:
报的什么错误?有一点,不能在foreach中删除记录要删也是先记录下来,遍历完了再删除
解决方案三:
捕捉到异常了,还是没异常就是删除没效果?
解决方案四:
为什么要用Invoke(newAction(delegate,你这按钮不是主线程生成的控件?
解决方案五:
引用1楼xian_wwq的回复:
报的什么错误?有一点,不能在foreach中删除记录要删也是先记录下来,遍历完了再删除
有异常目标为空
解决方案六:
引用3楼xdashewan的回复:
为什么要用Invoke(newAction(delegate,你这按钮不是主线程生成的控件?
不要Invoke也一样
解决方案七:
引用2楼lovelj2012的回复:
捕捉到异常了,还是没异常就是删除没效果?
异常时目标不存在
解决方案八:
引用6楼l_ju_f的回复:
Quote: 引用2楼lovelj2012的回复:
捕捉到异常了,还是没异常就是删除没效果?异常时目标不存在
引用6楼l_ju_f的回复:
Quote: 引用2楼lovelj2012的回复:
捕捉到异常了,还是没异常就是删除没效果?异常时目标不存在
哪行代码报错?
解决方案九:
引用7楼lovelj2012的回复:
Quote: 引用6楼l_ju_f的回复:
Quote: 引用2楼lovelj2012的回复:
捕捉到异常了,还是没异常就是删除没效果?异常时目标不存在
引用6楼l_ju_f的回复:
Quote: 引用2楼lovelj2012的回复:
捕捉到异常了,还是没异常就是删除没效果?异常时目标不存在
哪行代码报错?
dataGridView1.Rows.Remove(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex]);就是这一行remove的时候报错