0

ユーザーがDGVのDefaultValuesNeeded()イベントで次のように入力して、前の行から新しい行に値をコピーできるようにしたいと思います。

private void dataGridViewPlatypi_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs args)
{
    dataGridViewRow dgvr = args.PreviousRow;
    args.Row.Cells[1].Value = dgvr.Cells[1].Value;
    args.Row.Cells[2].Value = dgvr.Cells[2].Value;
    args.Row.Cells[3].Value = dgvr.Cells[3].Value;
    args.Row.Cells[4].Value = dgvr.Cells[4].Value;;
    args.Row.Cells[5].Value = dgvr.Cells[5].Value;
}

...ただし、プログラムで前の行を推測できるかどうかはわかりません(上記のように、argsの「PreviousRow」プロパティはありません)。

4

1 に答える 1

0

これは、行全体ではなく一度に 1 つのセルのみをコピーするため、提起された私の質問に正確に答えるものではありませんが、実際には私の目的に合っています (セルから最初の行の左にコピーし、セルから以降):

これは機能します:

private void dataGridViewPlatypi_CellEnter(object sender,   DataGridViewCellEventArgs args)
{
    string prevVal = string.Empty;
    if (args.RowIndex > 0)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[args.ColumnIndex].Value.ToString();
    } else if (args.ColumnIndex > 1)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex-1].Value.ToString();
    }
    dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
}
于 2012-09-24T22:44:17.673 に答える