2017-08-11 41 views
0

ユーザーが不適切な値を入力したときに、DataGridViewCellのBackColorを赤で表示するように編集しようとしています。DataGridViewセルの色がエラー時に変更されない

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) 
    { 
     if (e.Exception is FormatException) 
     { 
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red; 
     } 

    } 

色は実際にはわかりませんが理由で更新されません。それは、選択されたものではない他のセルを細かく編集することができます。

+0

を修正されていない場合、私は部分的に(EditingControlのを編集して、今それを修正したDatagreedview CellValidatingイベントでそれを呼び出し、そこに色を変更しますテキストボックス)バックカラーも。しかし、私はまだスタイルのバックカラーが更新されない理由を理解していません。 –

答えて

0

あなたのコードはわかりませんが、プログラムのログを再考する必要があるかもしれません。例外がどこから来ているかによって異なります。テキストが設定されていない場所からのものである場合、変更する方法や色はありません。 DataErrorは例外なので、後にコードがスローされても実行されていません。私は、DataErrorには、例外のセルに関するすべての例外に関する情報がないと思います。そのために色を変更しない可能性があります。

私はあなたのコードを知らないので、私はあまり役に立たない。しかし、私はそれをやる方法を教えてくれるでしょう。

私は、ユーザー入力をチェックする機能を作ってあげると、入力が

+0

CellValidatingの色を更新するときも同じ問題があるようです。それとも、おそらくエラーがスローされているとは何か? –

+0

さらに追加する - 問題は、colorプロパティが変更されないことではありません。 colorプロパティは実際は赤ですが、検証をキャンセルしたい場合(同じテキストボックスに残ります)、赤色で表示されないようです。 –

+0

変更を保存してからもう一度フォーカスを合わせることはできますか? – Angua

関連する問題