Botón de habilitación de C# cuando se hace clic en todas las casillas de verificación en datagridview

programación


En este programa, quiero que el botón esté habilitado después de que todas las casillas de verificación en Datagridview estén marcadas. La situación actual es que el botón solo se habilitará cuando se haga clic en la última casilla de verificación de la columna. ¿Alguna sugerencia para solucionar este problema?

Lo que he probado:

private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    var senderGrid = (DataGridView)sender;
    senderGrid.EndEdit();
    for (int i = 0; i <= dataGridView2.Rows.Count - 1; i++)
    {
        if (e.RowIndex >= 0)
        {
            var cbxCell = (DataGridViewCheckBoxCell)senderGrid.Rows[i].Cells[1];
            if ((bool)cbxCell.Value)
            {
                btn1.Enabled = true;
            }
            else
            {
                btn1.Enabled = false;
            }
        }
    }

}

Solución 1

private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    bool flag = true;
    var senderGrid = (DataGridView)sender;
    senderGrid.EndEdit();

    for (int i = 0; i <= dataGridView2.Rows.Count - 1; i++)
    {
        if (e.RowIndex >= 0)
        {
            var cbxCell = (DataGridViewCheckBoxCell)senderGrid.Rows[i].Cells[1];

            if (!(bool)cbxCell.Value)
            {
                flag = false;
            }
        }
    }

    btn1.Enabled = flag;
}

Solución 2

private void dgvSelectedServices_CellContentClick(object sender, DataGridViewCellEventArgs e)
{


    bool flag = true;
    var senderGrid = (DataGridView)sender;
    senderGrid.EndEdit();

    for (int i = 0; i <= dgvSelectedServices.Rows.Count - 1; i++)
    {
        foreach (DataGridViewRow row in dgvSelectedServices.Rows)
        {

            if (e.RowIndex >= 0)
            {
                bool isselect = Convert.ToBoolean(row.Cells[2].Value);
                if (isselect)
                {
                    if (dgvSelectedServices.SelectedRows.Count == dgvSelectedServices.Rows.Count)
                    {
                        flag = true;
                    }

                }
                else
                {
                    flag = false;
                }
                btnNextToWIP.Enabled = flag;
            }

        }

    }


}

コメント

タイトルとURLをコピーしました