私のプロジェクトには、ユーザーが編集して DB に保存できる DataGridView があります。DataGridView に検証を追加しようとしています。(特定の列は必須であり、数値 (具体的には double) のみにすることができます)。
舞台裏で .Net によって行われる自動解析を回避するのに問題があります。DataGridView の動作は、ユーザーが必須フィールドを空白のままにするか、double として解析できないもの (テキストなど) を入力するかによって異なります。
より簡単なケース: ユーザーが必須フィールドを空白のままにして [保存] をクリックした場合。[保存] ボタンのクリック イベントが発生し、セルの Value プロパティが に設定されていることを確認できますDBNull
。この場合、セルのErrorText
プロパティを設定して を表示しMessageBox
ます。
Harder Case : ユーザーが double として解析できないテキスト (「asdf」など) を入力した場合。これが発生すると、セルがフォーカスを失うとすぐに、組み込みの .Net 検証がバックグラウンドで実行され、スタック トレースを示すメッセージ ボックスが表示されます。この検証を完全に無効にして、ユーザーが [保存] をクリックしたときに独自の検証を行うだけです。
(その時点までは、無効なデータは問題ではありません)。誰もこれを行う方法を知っていますか?