0

我有 3 个 DatagridviewCheckboxCell 并使用此代码检查它们:

foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            DataGridViewCheckBoxCell chk1 = (DataGridViewCheckBoxCell)row.Cells["Column6"];
            DataGridViewCheckBoxCell chk2 = (DataGridViewCheckBoxCell)row.Cells["Column7"];
            DataGridViewCheckBoxCell chk3 = (DataGridViewCheckBoxCell)row.Cells["Column8"];

            string commande2 = "SELECT id_pres from Fonct_Prest where id_fonc = @id";
            OleDbCommand cmd2 = new OleDbCommand(commande2, con);
            cmd2.Parameters.AddWithValue("@id", row.Cells["Code"].Value);
            dt2.Load(cmd2.ExecuteReader());

            for (int i = 0; i < dt2.Rows.Count; i++)
            {
                if (dt2.Rows[i][0].ToString() == "1")
                {
                    chk1.Value = true;
                }
                if (dt2.Rows[i][0].ToString() == "2")
                {
                    chk2.Value = true;
                }
                if (dt2.Rows[i][0].ToString() == "6")
                {
                    chk3.Value = true;
                }
            }
            cmd2.Parameters.Clear();
            dt2.Rows.Clear();
        }

此代码工作正常,但在 datagridview 的第一行未选中复选框。我的代码中的错误在哪里?

4

1 回答 1

0

如果您知道列名,请尝试此代码。

    private void button2_Click(object sender, EventArgs e)
    {
        for(int i = 0; i < dataGridView1.RowCount; i++)
        {
            //Set defined value
            //dataGridView1.Rows[i].Cells["Column2"].Value = true;

            //toggle value from checked to unchecked.
            dataGridView1.Rows[i].Cells["Column2"].Value = !Convert.ToBoolean(dataGridView1.Rows[i].Cells["Column2"].Value);
        }
    }
于 2016-05-25T09:36:49.157 回答