4

在我的 Windows 窗体应用程序中,基本上我有两个DataGridViews. 我想从右侧选择行并将选定的行添加到左侧。右侧DataGridView有一个复选框列。

看图片:


网格


例如 :


  1. 单击第一行,然后单击添加按钮。

  2. 单击第三行,然后单击添加按钮。

问题是第一行被添加了两次,因为它被勾选了。

如何确保添加的行是不同的?


我的代码:


foreach (DataGridViewRow row in dgRight.Rows)
{
    DataGridViewCheckBoxCell check = row.Cells[0] as DataGridViewCheckBoxCell;
    if (check.Value != null)
    {
        if ((bool)check.Value)
        {
            DataRow myRow = (row.DataBoundItem as DataRowView).Row;
            DataRow dr = dt.NewRow();
            dr[0] = myRow[0];
            dr[1] = myRow[1];
            dr[2] = myRow[2];
            dr[3] = myRow[3];

            dt.Rows.Add(dr);
        }
    }
}
dgLeft.DataSource = dt;
4

1 回答 1

3

Data Table使用以下方法检查该行是否已存在.Find

var rowExists = dt.Rows.Find(dr);

if (rowExists == null) { // The row doesn't exist
  dt.Rows.Add(dr); // Add the row
}
于 2012-05-22T15:35:10.883 回答