DataGridViewCheckBox CheckedChange事件

时间:2017-04-21 20:04:44

标签: c# checkbox

我在列附近添加了Checkboxcolumn。 我在网上搜索了很多,但我找不到一个好的答案。

如果选中复选框计数最多为1,我想要Btn_Edit.Visiable=false;。 在我的研究之后,我转到使用CellContentClick事件,但它没有正常工作。

我的代码:

private void GrdVw_Reception_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
    {
        if (GrdVw_Reception.CurrentCellAddress.X == 0)
        {
            int UpTpOne = 0;
            bool flag = false;

            for (int i = 0; i < GrdVw_Reception.Rows.Count; i++)
            {

                if (Convert.ToBoolean(GrdVw_Reception.Rows[i].Cells["checkColumn"].Value) == true)
                {
                    UpTpOne = UpTpOne + 1;

                    if (UpTpOne == 1)
                    {
                        flag = true;
                    }
                    else
                    {
                        flag = false;
                    }
                }
            }

            if (flag == true)
            {
                Btn_Edit.Visible = true;
            }
            else
            {
                Btn_Edit.Visible = false;
            }
        }
    }

在此步骤中,当我运行程序并单击第一个Btn_Edit的复选框时,不要转到true,对于secound,单击Btn_Edit.Visiable转到true。

我想要checkchange事件或当我点击复选框时转到事件代码的事件。

(抱歉英语不好)

2 个答案:

答案 0 :(得分:0)

我自己证明了这一点并且必须这样做才能发挥作用:

     private void GrdVw_Reception_CellClick(object sender, DataGridViewCellEventArgs e)
     {
         if(e.ColumnIndex == TheColumnIndexOfTheCheckBoxColumn){
             bool currentValue = !(bool)GrdVw_Reception.Rows[e.RowIndex].Cells[0].Value;
             GrdVw_Reception.Rows[e.RowIndex].Cells[0].Value = currentValue;
            GrdVw_Reception.EndEdit();
            MessageBox.Show("Value " + currentValue.ToString());

         }
     }

当偶数点击发生时,值没有变化,因此,我自己更改了它并调用了dataGridView的EndEdit()方法。它的工作方式。

答案 1 :(得分:0)

org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration();
// Register your configuration here, this will confuse OGM so the driver you set below won't be destroyed
Components.configure(configuration);

// Register your driver
EmbeddedDriver driver = new EmbeddedDriver(graphDatabaseService());
Components.setDriver(driver);

// Set driver class name so you won't get NPE
configuration.driverConfiguration().setDriverClassName("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver");

// Configure auto index
configuration.autoIndexConfiguration().setAutoIndex("assert");

return new SessionFactory(configuration, "com.example");

在此代码中,我通过代码将checkbox的值设置为true,然后计算已检查的checkboxescell的数量。 我希望看到Btn_Edit可以看到假如果选中的复选框号码是1并且......

你应该勾选复选框勾选并将单元格的值设置为true,因为当你首先点击gridviewcellcheckbox时,该行将进入选择状态并在secound中单击该值将为true。

我搜索了很多,但无法得到任何好的答案,如果您有任何好主意,请致电我,这个代码总是我的想法。