2

このコードを使用して DataGridViewCheckBoxColumn の項目を変更しようとしています

        foreach (DataGridViewRow dgvUser in UsersGrid.Rows)
        {
          dgvUser.Cells["ChkSelect"].Value = true;
        }

チェックボックスの値は変更されましたが、UI のチェックボックスはオフのままです。

どうやってするの ?

4

3 に答える 3

1

ここでの問題は、DataGridViewCheckboxCell他の細胞とは異なる働きをすることです。何らかの理由で、チェックボックスの描画方法 (チェックまたはチェック解除) を決定するために使用されるプロパティはValueFormattedValue

ただし、DataGridViewCheckBoxCell で Value セッターが正しく動作するようにオーバーライドされているように感じます。したがって、 a で呼び出す場合は、ベースDataGridViewCellのものを使用しています(これは FormattedValue には影響しません) が、セルをキャストすると動作するはずです:

((DataGridViewCheckBoxCell)  dgvUser.Cells["ChkSelect"]).Value = true;
于 2013-08-29T12:57:24.813 に答える
0

同じ行の他のチェックボックス列をクリアしようとしたときに、この正確な問題が発生しました(CellValueChangedメソッド内で実行されました)。私の問題を解決するには、次のコードが必要でした。

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    // filter for valid DataGridViewCheckBoxCell columns, if desired
    dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
于 2015-09-25T00:00:08.883 に答える