任何人都可以举例说明如何将行从一个 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();
// 更新了第二个 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++;
}
当我来到第三行时,索引超出范围异常。让我知道为什么会出现此错误。