【解決方法】データグリッドビューですべてのチェックボックスを選択する方法


こんにちは、すべてのチェックボックスを選択するコードを書いたのですが、それができません。助けてください。

私が試したこと:

CheckBox HeaderCheckBox=null;
    bool IsHeaderCheckBoxClicked=false;
    private void AddHeaderCheckBox()
    {
        HeaderCheckBox= new CheckBox();
        HeaderCheckBox.Size=new Size(15,15);
        //add check ti DGV
        this.dataGridView1.Controls.Add(HeaderCheckBox);
    }
    private void HeaderCheckBoxClick(CheckBox HCheckBox)
    {
        IsHeaderCheckBoxClicked =true;
        foreach(DataGridView Row in dataGridView1.Rows)
            (DataGridViewCheckBoxCell)Row.CellStateChanged["chk"].value=HCheckBox.Checked;
    }

public void MainFormLoad(object sender, EventArgs e)
		{	

AddHeaderCheckBox();
		}

解決策 1

foreach (DataGridViewRow row in dataGridView1.Rows)
{
       DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell) row.Cells[0];
       chk.Value = !(chk.Value == null ? false : (bool) chk.Value); //because chk.Value is initialy null
}

解決策 2

こんにちは、私は変更するこのコードを書きました 全て チェックボックスを最初のチェックボックスの反対の状態にします。私の場合、チェックボックスはデータグリッドビューの3列目にありました。

C#
private void button1_Click(object sender, EventArgs e){
bool state= (bool)tblDocumentos.Rows[0].Cells[2].Value; //stores the state of the first row checkbox
    
foreach (DataGridViewRow row in mydatagridview.Rows)
    {
        row.Cells[2].Value = !state; //Sets the state of each checkbox to the opposite state of the first checkbox
    }
}

それが役に立てば幸い

コメント

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