我正在尝试为DataGridView实现自定义解析。它应该将输入的值转换为TimeSpan? (可空<时间跨度&GT)。
我的代码如下:
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 是另一个执行自定义解析的扩展程序。
到目前为止,非常好,解析对于输入的数字非常有效。
问题在于输入无效字符(''(单个空格),'x',...),它将 e.Value 设置为 null 。然后我总是得到一个DataGridView错误弹出窗口。
如果我什么也没输入(输入内容并将其全部删除然后离开单元格),则不显示所述错误。
我做错了什么,如何解决这个问题?