4

私のWindowsフォームアプリケーションでは、基本的に2つDataGridViewのがあります。右から行を選択し、選択した行を左に追加したいと思います。右側DataGridViewにはチェックボックス列があります。

画像を参照してください:


グリッド


例えば ​​:


  1. 最初の行をクリックして、[追加]ボタンをクリックします。

  2. 3行目をクリックし、[追加]ボタンをクリックします。

問題は、最初の行がチェックされているために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 に答える