选中/取消选中Datagrid复选框时运行代码,并获取更改的值

时间:2015-03-05 23:29:58

标签: c# winforms checkbox datagridview

我需要在检查/取消选中数据网格上的复选框时执行代码,这样做不用多了。

所以我有:

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
        txtCCs.Text = String.Empty;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (Convert.ToBoolean(row.Cells[CC.Name].Value) == true)
            {
                txtCCs.Text += row.Cells[3].Value.ToString().Trim() + ", ";
            }
        }
    }

哪个适用于一个新的裸项目,但是我的实际项目,它运行但没有看到更改的值。因此,如果我单击1框,没有任何反应,单击另一个,它现在可以看到第一个被选中,但是错过了被点击的那个触发它。即使我的代码中有CommitEdit。

编辑:我完全删除了CellContentClick代码并删除了该功能,现在它可以工作了。不知道问题是什么,因为它仍然会运行,只是没有做commitEdit。

1 个答案:

答案 0 :(得分:0)

您需要先提交编辑:

void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {
  dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
  txtCCs.Text = String.Empty;
  foreach (DataGridViewRow row in dataGridView1.Rows) {
    if (Convert.ToBoolean(row.Cells[CC.Name].Value) == true) {
      txtCCs.Text += row.Cells[3].Value.ToString().Trim() + ", ";
    }
  }
}