【解決方法】datagridview のすべてのチェックボックスがクリックされたときの C# 有効化ボタン

プログラミングQA


このプログラムでは、datagridview のすべてのチェックボックスがオンになった後にボタンが有効になるようにします。 現在の状況では、ボタンは列の最後のチェックボックスがクリックされた場合にのみ有効になります。 この問題を解決するための提案はありますか?

私が試したこと:

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;
            }
        }
    }

}

解決策 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;
}

解決策 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をコピーしました