あるDatagridviewから別のDataGridViewに行をコピーする方法の例を誰かに教えてもらえますか?行は前にあります-色は赤です。
私はウェブでそれらが関連する選択された行のコピーを見ました。ただし、行が前の場所(色は赤)のみをコピーする必要があります。
私が使用しているこのコード:
int k = 0;
foreach (DataGridViewColumn c in dgdPrview.Columns)
{
dgdMissingAcc.Columns.Add(c.Clone() as DataGridViewColumn);
}
foreach (DataGridViewRow dgvRow in dgdPrview.Rows)
{
if (dgdPrview.Rows[k][0].Cells[1].Style.ForeColor == System.Drawing.Color.Red)
{
dgdMissingAcc.Rows.Add(dgvRow); //Error:Row provided already belongs to a DataGridView control.
k++;
}
}
dgdMissingAcc.Show();
// 2番目のforeachループを更新しました:
foreach (DataGridViewRow dgvRow in dgdPrview.Rows)
{
var cellcount = dgdPrview.ColumnCount; //here I take the column count not the row count.
if (dgdPrview.Rows[k][0].Cells[1].Style.ForeColor == System.Drawing.Color.Red)
{
for (int i = 0; i < cellcount; i++)
{
dgdMissingAcc.Rows[k][0].Cells[i].Value = dgdPrview.CurrentRow.Cells[i].Value.ToString();
}
}
k++;
}
3行目に来ると、インデックスが範囲外の例外になっています。このエラーが発生する理由を教えてください。