as column テンプレートDataGridView
を持つ列があります。DataGridViewCheckBoxColumn
ユーザーがチェックボックスをオンにしたときに、いくつかの条件に失敗した場合は、プログラムでチェックを外す必要があります。私はこれを行いましたが、このチェック解除ロジックは、セルからフォーカスを手動で変更した後にのみ有効になります。プログラムでフォーカスを変更しようとしましたが、うまくいきませんでした。これに対する解決策はありますか?
4624 次
3 に答える
2
コードを少し変更するだけで答えが見つかりました。datagridviewの編集キャンセル機能を利用しました。チェックボックスの値の変更を以前に発生させるために、CurrentCellDirtyStateChanged イベント内でこのコードを使用していました。
CommitEdit(DataGridViewDataErrorContexts.Commit)
今、私はそれを変更しました。
CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange)
そして、
CancelEdit()
変更をロールバックします。
于 2012-11-07T06:58:03.237 に答える
1
DataGridViewCell.Value
プロパティの値をfalse
(またはtrue
)に設定するだけです:
((DataGridViewCheckBoxCell)row.Cells[CheckBoxColumn.Index]).value = false;
于 2012-11-07T05:21:31.730 に答える
1
最近、私は同様の問題を抱えていました。私の場合、セル値を false に設定するか、TrueValue と FalseValue (DataGridViewCheckBoxCell の場合) を操作すると失敗しました。
最後に、単純な DataGridView メソッドを使用して、私が望んでいたことを達成することができました (いくつかの条件が失敗した場合はチェックを外します):
dataGridView1.CancelEdit()
それが役に立てば幸い。
于 2014-04-09T11:51:58.560 に答える