DataGridView:使用CellParsing获取Nullable <timespan> </timespan>

时间:2013-06-26 07:09:23

标签: c# winforms parsing datagridview timespan

我正在尝试为DataGridView实现自定义解析。它应该将输入的值转换为TimeSpan? (可空&LT;时间跨度&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错误弹出窗口。

如果我什么也没输入(输入内容并将其全部删除然后离开单元格),则不显示所述错误。

我做错了什么,如何解决这个问题?

0 个答案:

没有答案