private void btnDel_Click(object sender, EventArgs e) { if (DataGrid2.CurrentRowIndex != -1) { DataTable dtInCome = (DataTable)DataGrid1.DataSource; DataTable dt = (DataTable)DataGrid2.DataSource; int n = 0; //获取当前选定的行号 n = DataGrid2.CurrentRowIndex; for (int i = 0; i < dtInCome.Rows.Count; i++) { if (dtInCome.Rows[i]["物料编码"].ToString() == dt.Rows[n]["物料编码"].ToString() && dtInCome.Rows[i]["采购订单行号"].ToString() == dt.Rows[n]["采购订单行号"].ToString() && dtInCome.Rows[i]["批次"].ToString() == dt.Rows[n]["批次"].ToString()) { double qty = Convert.ToDouble(dtInCome.Rows[i]["标记数量"]); dtInCome.Rows[i]["标记数量"] = qty - Convert.ToDouble(dt.Rows[n]["数量"]); DataGrid1.DataSource = dtInCome; } } //从数据集集合中删除行 dt.Rows.RemoveAt(n); //刷新Datagrid1显示删除后的数据 DataGrid2.Refresh(); } }