0

在我的 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;
        }

在此处输入图像描述

4

1 回答 1

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;
    }
}
于 2012-10-27T18:31:23.163 回答