做Winform开发,对需求的实习是从一个DatagridView中选择数据,并复制到另一个DatagridView 中,之前BS开发做过类似效果,使用DataGridView肯定没问题。
将DataGridView1中的数据复制到DataGridView2中;设置DataGridView1的第一列为复选框,DataGridView1的两个事件,协作实现我们想要的效果,dataGridView1_CurrentCellDirtyStateChanged,dataGridView1_CellValueChanged。
代码:
<span style="font-family:SimSun;font-size:18px;"> private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); //提交
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{</span>
<span style="font-family:SimSun;font-size:18px;"> if (e.RowIndex >= 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow) //行和列,并且行中存在数据;
{
if (e.ColumnIndex == 0)
{
if ((bool)this.dataGridView1[e.ColumnIndex, e.RowIndex].Value == true)
{
dataGridView2.Rows.Add(); //现在要复制到的DataGridView中添加一个行,然后下面循环列,进行赋值;
for (int j = 0; j < dataGridView1.Rows[e.RowIndex].Cells.Count; j++)
{
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[j].Value = dataGridView1.Rows[e.RowIndex].Cells[j].Value;
}
}
}
}
}</span>
总结
不断地出现新的需求,不断地尝试新的实现方式,实践越多,越成熟,但是开发周期有限,一切还是应该以交付产品为重要紧急的事情。