我在datagridview选中3行数据但只运行前2行,另一行都不运行,而且有时还不稳定!也就是说有时我选了4个但它只运行了2 个,有时又运行3个!代码如下:
for (int i = 0; i != dvg_TianJiaYongHui.Rows.Count;)
{
int kk = 0;
i = 0; //foreach (DataGridViewRow MyRow in dvg_TianJiaYongHui.Rows)
for (int k = 0; k < dvg_TianJiaYongHui.Rows.Count;k ++ )
{
dvg_TianJiaYongHui.EndEdit();
if (bool.Parse(dvg_TianJiaYongHui.Rows[k].Cells["选择"].EditedFormattedValue.ToString()) == true)
{
DataRow row = dt_right.NewRow();
row["机构名称"] = dvg_TianJiaYongHui.Rows[k].Cells["jgmc"].Value;
row["jgdm"] = dvg_TianJiaYongHui.Rows[k].Cells["jgdm"].Value;
row["教师姓名"] = dvg_TianJiaYongHui.Rows[k].Cells["xm"].Value;
row["jsbh"] = dvg_TianJiaYongHui.Rows[k].Cells["jsbh"].Value;
dt_right.Rows.Add(row);
int int_dtrowIndex = 0;
foreach (DataRow dtrow in dt_left.Rows)
{
if (dtrow["jgmc"] == dvg_TianJiaYongHui.Rows[k].Cells["jgmc"].Value && dtrow["jgdm"] == dvg_TianJiaYongHui.Rows[k].Cells["jgdm"].Value)
{
int_dtrowIndex = dt_left.Rows.IndexOf(dtrow);
break;
}
}
dt_left.Rows.RemoveAt(int_dtrowIndex);
}
else
{
kk++;
}
}
if (kk == dvg_TianJiaYongHui.Rows.Count)
{
break;
} dt_left.AcceptChanges();
dt_right.AcceptChanges();
dvg_TianJiaYongHuinew.DataSource = dt_right;
}
for (int i = 0; i != dvg_TianJiaYongHui.Rows.Count;)
{
int kk = 0;
i = 0; //foreach (DataGridViewRow MyRow in dvg_TianJiaYongHui.Rows)
for (int k = 0; k < dvg_TianJiaYongHui.Rows.Count;k ++ )
{
dvg_TianJiaYongHui.EndEdit();
if (bool.Parse(dvg_TianJiaYongHui.Rows[k].Cells["选择"].EditedFormattedValue.ToString()) == true)
{
DataRow row = dt_right.NewRow();
row["机构名称"] = dvg_TianJiaYongHui.Rows[k].Cells["jgmc"].Value;
row["jgdm"] = dvg_TianJiaYongHui.Rows[k].Cells["jgdm"].Value;
row["教师姓名"] = dvg_TianJiaYongHui.Rows[k].Cells["xm"].Value;
row["jsbh"] = dvg_TianJiaYongHui.Rows[k].Cells["jsbh"].Value;
dt_right.Rows.Add(row);
int int_dtrowIndex = 0;
foreach (DataRow dtrow in dt_left.Rows)
{
if (dtrow["jgmc"] == dvg_TianJiaYongHui.Rows[k].Cells["jgmc"].Value && dtrow["jgdm"] == dvg_TianJiaYongHui.Rows[k].Cells["jgdm"].Value)
{
int_dtrowIndex = dt_left.Rows.IndexOf(dtrow);
break;
}
}
dt_left.Rows.RemoveAt(int_dtrowIndex);
}
else
{
kk++;
}
}
if (kk == dvg_TianJiaYongHui.Rows.Count)
{
break;
} dt_left.AcceptChanges();
dt_right.AcceptChanges();
dvg_TianJiaYongHuinew.DataSource = dt_right;
}
dt_left.Rows.RemoveAt(int_dtrowIndex);
不太合适,尝试
List<DataGridViewRow> removeList = new List<DataGridViewRow>();
for (int k = 0; k < dvg_TianJiaYongHui.Rows.Count;k ++ )
{
....
//需要删除的情况下
removeList.Add(dvg_TianJiaYongHui.Rows[k]);
}准备好移除队列后
foreach(DataGridViewRow row in removeList)
{
dvg_TianJiaYongHui.Rows.Remove(row);
}
c.HeaderText = "选择";
dgv1.Columns.Add(c);
string str=string.empty;
foreach (DataGridViewRow dr in this.dataGridView1.Rows)
{
try
{
DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];
if ((bool)cbx.FormattedValue)
{
str+= dr.Cells[1].Value;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
或
for (int i=0;i<dataGridView1.Rows.Count;i++)
{
if(Convert.ToBoolean(dataGridView1.Rows[i].Cells[1].FormattedValue) == true)
{
} }