最近在做一个C# winform的小东西,在用到向DataWindow 中添加新行.实现方法是右击菜单后弹出一窗体,新窗体上有一个DataGridView ,第一列是个DataGridViewCheckBoxColumn列.要求是选中checkbox的行添加到父窗体数据源中.现就判断哪些有选中的
foreach (DataGridViewRow dr in this.dataGridView1.Rows)
{
try
{
//DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];
//if ((bool)cbx.FormattedValue)
if(dr.Cells[0].Selected)
{
arrShiftCode.Add(dr.Cells[1].Value);
arrShiftGroup.Add(dr.Cells[2].Value);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
以上是一开始这样写的,发现选中了多个,始终只有最后一个是True,其他的都是False.最后经查资料有如下写法即可
foreach (DataGridViewRow dr in this.dataGridView1.Rows)
{
try
{
DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];
if ((bool)cbx.FormattedValue)
{
arrShiftCode.Add(dr.Cells[1].Value);
arrShiftGroup.Add(dr.Cells[2].Value);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}