DataGridView のカスタム解析を実装しようとしています。入力された値を TimeSpan に変換することになっていますか? (Nullable<TimeSpan>)。
私のコードは次のとおりです。
private void dataGridViewWeek_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
if((e.Value is string) && (e.DesiredType == typeof(TimeSpan?)))
{
string lsValue = ((string)e.Value).Trim();
if(!lsValue.IsTimeSpan()) e.Value = null;
else e.Value = lsValue.ToTimeSpan();
e.ParsingApplied = true;
}
}
IsTimeSpanは、指定された文字列をTimeSpanに変換できる場合にtrueを返す拡張メソッドです。
ToTimeSpanは、私のカスタム解析を実行する別の拡張機能です。
これまでのところ、解析は入力された数値に対して完全に機能します。
問題は、 e.Valueをnullに設定する無効な文字 (' ' (単一の空白)、'x'、...) を入力することです。次に、常に DataGridView エラーポップアップが表示されます。
何も入力しないと(何かを入力してすべて削除してからセルを離れる)、上記のエラーは表示されません。
私は何を間違っていますか?どうすれば修正できますか?