vs中如何把DataGridViewCheckBoxColumn选中行的数据放到另一DataGridView中

2024-11-10 00:45:48
推荐回答(2个)
回答1:

首先在rows.count循环前要给dataGridView2加colums
dataGridView2.Columns.Add("nihao1","你好");
dataGridView2.Columns.Add("nihao2","你好");
dataGridView2.Columns.Add("nihao3","你好");
dataGridView2.Columns.Add("nihao4","你好"); ......
类似这样,和后面要传的列要保持一致
然后在你注释的 //把选中的数据填充到 DataGridView2中
下面这样操作就行了,不用重新绑定
DataGridViewCheckBoxCell check = dataGridView1.Rows[i].Cells[0] as DataGridViewCheckBoxCell;//你的checkbox所在的列
if (check.Value != null) //当第一次没操作checkbox时,它的值为空,等操作一次后才会显示true或者false
{
if ((bool)check.Value)//当选中时,下面的操作方法就多了,我随便列举一种了
{
object[] item = new object[]//想显示几列就写几列,注意与前面的对应
{
dataGridView1.Rows[i].Cells[1].Value.ToString(),
dataGridView1.Rows[i].Cells[2].Value.ToString(),
dataGridView1.Rows[i].Cells[3].Value.ToString(),
dataGridView1.Rows[i].Cells[4].Value.ToString(),
};
dataGridView2.Rows.Add(item);
}
}

回答2:

DataGridViewRowCollection drc = dataGridView1.Rows;
DataGridViewRow dgvr=null;
for (int i = 0; i < drc.Count; i++)
{

if (drc[i].Selected) { dgvr = drc[i]; break; }//找到选中行
}
dataGridView2.Rows.Add(dgvr);//添加进表2