我试图在DataGridView中获取checked复选框的值,因此我检查value是true还是false:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && e.RowIndex != -1)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if ((bool)dataGridView1.Rows[i].Cells["check"].Value == true)
{
dataGridView1.Rows[i].Cells["check"].Value = false;
}
else
{
dataGridView1.Rows[i].Cells["check"].Value = true;
}
button2.Enabled = (counter > 0);
}
}
}
}
它排除了错误:
if ((bool)dataGridView1.Rows[i].Cells["check"].Value == true)
第二个解决方案:
if (dataGridView1.Rows[i].Cells["check"].Value == null || (bool)dataGridView1.Rows[i].Cells["check"].Value == false)
{
dataGridView1.Rows[i].Cells["check"].Value = true;
counter++;
}
else
{
dataGridView1.Rows[i].Cells["check"].Value = false;
counter--;
}
以下代码有效,但有时不会选中复选框
答案 0 :(得分:0)
我在我的一个项目中做了一些非常相似的事情, 我只使用OnCellValueChanged而不是CellContentClick。
这是我的工作代码
bool completed = Convert.ToBoolean(dgv.Rows[e.RowIndex].Cells[1].Value.ToString());
你的错误是什么?您是否试图查看调试器中的.Value是什么?