获取Datagridview中的复选框值?

时间:2017-06-27 14:08:32

标签: c# c#-4.0 datagridview

我试图在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--;
                    }

以下代码有效,但有时不会选中复选框

1 个答案:

答案 0 :(得分:0)

我在我的一个项目中做了一些非常相似的事情, 我只使用OnCellValueChanged而不是CellContentClick。

这是我的工作代码

bool completed = Convert.ToBoolean(dgv.Rows[e.RowIndex].Cells[1].Value.ToString());

你的错误是什么?您是否试图查看调试器中的.Value是什么?