dataGridView CheckBox选中了dosen&work

时间:2014-09-11 12:08:59

标签: c# winforms datagridview

我有一个dataGridView,他的第一列是checkBox。

我想在此复选框上使用选中的事件。

这是我的代码:

  dataGridView1.EditingControlShowing += (sender, e) =>
            {                                                          


                if (dataGridView1.CurrentCell.ColumnIndex == 0)
                {

                    CheckBox cb = (CheckBox)e.Control;
                    cb.CheckedChanged += (s, e1) =>
                        {
                          dosomething();
                         };
                    }
                };

但是当我更改第一列中的复选框时,它永远不会进入checkedChanged事件。

1 个答案:

答案 0 :(得分:1)

您可以将活动更改为CellContentClick活动,然后检查它是否为您的复选框列:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
     if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn)
     {
        DataGridViewCheckBoxCell cbCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];

        if (cbCell.Value == cbCell.TrueValue)
        {
            cbCell.Value = cbCell.FalseValue;
        }
        else
        {
            cbCell.Value = cbCell.TrueValue;
        }
      }
}