数据网格视图复选框列单元格鼠标单击

本文关键字:单元格 鼠标 单击 复选框 数据网 网格 视图 数据 | 更新日期: 2023-09-27 17:56:12

我正在使用包含CheckBox列的DataGridView。当我尝试检索该列的值时,它总是假的。请让我知道原因。

这是我的代码:

private void dataGridViewCrossRef_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
     {
       bool isChecked1 = false;
       isChecked1 = (Boolean)dataGridViewCrossRef[25, e.RowIndex].FormattedValue;
       if (isChecked1)
       {
          //Some code
       }
     } 

数据网格视图复选框列单元格鼠标单击

由于绑定到Chekbox的数据是整数,因此我将代码更改为波纹管并且它起作用了。

谢谢

private void dataGridViewCrossRef_CellContentClick(Object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 25) { 整数单元格值 = 0; CellValue = Convert.ToInt16(dataGridViewCrossRef[e.ColumnIndex, e.RowIndex]。EditedFormattedValue); if (单元格值 == 1) {

            }
        }
    }

试试CellContentClick Event

    private void dataGridViewCrossRef_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 25)
        {
            bool IsBool = false;
            if (bool.TryParse(dataGridViewCrossRef[e.ColumnIndex, e.RowIndex].EditedFormattedValue.ToString(), out IsBool))
            {
               //Some code
            }
        }
    }

编辑

CellClick Event中尝试此操作,您需要将dataTable声明为public

   private void dataGridViewCrossRef_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 25)
        {
            //Find primaykey or something unique from your dataTable   
            DataRow[] Rows = dataTable.Select("Id = '" + dataGridViewCrossRef[0, e.RowIndex].EditedFormattedValue.ToString() + "'");
            Rows[0]["NameOfColumnHasCheckBox"] = !bool.Parse(Rows[0]["NameOfColumnHasCheckBox"].ToString());
        }
    }