在我的datagridview中,我有4列,当用户给第一行一些值时,我想采用1st row 4th cell value and put it to the 2nd Row 3rd cell
,就像我必须申请所有行一样(请参阅图片)。在某些情况下,我只有2行,最大值我将有4行。
以下方法可行,但当我用2或3行测试时它不起作用。显然第3和第4不存在。
我该怎么办?这样做有更好的方法吗?
这里我编码了最多4行。
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
var value1 = dataGridView1.Rows[0].Cells[3].Value.ToString();
dataGridView1.Rows[1].Cells[2].Value = value1;
var value2 = dataGridView1.Rows[1].Cells[3].Value.ToString();
dataGridView1.Rows[2].Cells[2].Value = value2;
var value3 = dataGridView1.Rows[2].Cells[3].Value.ToString();
dataGridView1.Rows[3].Cells[2].Value = value3;
}
答案 0 :(得分:2)
对于类似的东西,你应该处理CellEndEdit
,绝对不要硬编码行索引。
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex != 3)
return;
int nextRowIndex = e.RowIndex + 1;
int lastRowIndex = dataGridView1.Rows.Count - 1;
if (nextRowIndex <= lastRowIndex)
{
var value = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
dataGridView1.Rows[nextRowIndex].Cells[2].Value = value;
}
}