在datagridviewcheckboxcolumn中获取CheckBox的正确值

本文关键字:CheckBox datagridviewcheckboxcolumn 获取 | 更新日期: 2023-09-27 18:11:20

我在DataGridView中有一个CheckBox列,称为Status,当我checkuncheck它时,我想更新数据库中falsetrue。目前我有以下的方法,应该做到这一点。

当选择特定的行时,SelectedEmployeeID属性和StatusOfSelectedEmployee属性被准确地分配值。但是我想要实现的是,当我checkuncheck CheckBox而不是选择行时,我想要做到这一点。现在,当我点击CheckBox时,只有SelectedEmployeeID属性被分配了正确的值。StatusOfSelectedEmployee总是false

private void DGV_CellClick(object sender, DataGridViewCellEventArgs e)
{
    SelectedEmployeeID = DGV.Rows[e.RowIndex].Cells["EmployeeID"].Value.ToString();
    StatusOfSelectedEmployee = Convert.ToBoolean(DGV.Rows[e.RowIndex].Cells["EmployeeStatus"].Value);
    if (e.ColumnIndex == 10 & e.RowIndex != -1) //CheckBox column's col_index is 10
    {
        OnChangeEmployeeStatus(sender, e); //This will update the status
    }
}
  1. 如何获得StatusOfSelectedEmployee属性的正确值?
  2. 如何避免硬编码在if条件下使用列名而不是数字?

在datagridviewcheckboxcolumn中获取CheckBox的正确值

1)尝试使用DataGridView.CellValueChanged事件。它在您更改值

后被触发。2)使用Datagridview1.Columns["columnName"].Index
获取列索引