数据网格视图复选框列单元格鼠标单击
本文关键字:单元格 鼠标 单击 复选框 数据网 网格 视图 数据 | 更新日期: 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());
}
}