.NET DataGridView:处理CellParsing事件时处理解析错误的正确方法?

.NET DataGridView:处理CellParsing事件时处理解析错误的正确方法?,.net,exception,parsing,datagridview,error-handling,.net,Exception,Parsing,Datagridview,Error Handling,我目前正在开发一个角度测量设备(测角仪)的应用程序。 DataGridView组件用于配置测量角度的标称值(和公差)。用户应能够以各种方式输入角度,例如2°(表示度)或120'(表示弧分)或7200”(表示弧秒)。为此,我创建了一个解析器,该解析器将有效字符串转换为角度值(双精度,表示度),如果字符串无效,则会失败 据我所知,调用解析器的正确时间点是在处理CellParsing事件期间。但当解析失败时,我如何正确处理该情况? 根据MSDN示例代码,我认为应该将DataGridViewCellPa

我目前正在开发一个角度测量设备(测角仪)的应用程序。
DataGridView
组件用于配置测量角度的标称值(和公差)。用户应能够以各种方式输入角度,例如2°(表示度)或120'(表示弧分)或7200”(表示弧秒)。为此,我创建了一个解析器,该解析器将有效字符串转换为角度值(双精度,表示度),如果字符串无效,则会失败

据我所知,调用解析器的正确时间点是在处理
CellParsing
事件期间。但当解析失败时,我如何正确处理该情况?

根据MSDN示例代码,我认为应该将
DataGridViewCellParsingEventArgs
ParsingApplied
属性(传递给
CellParsingEventArgs
处理程序)设置为
false
。如果我这样做(并且保持
属性不变)转换尝试抛出
FormatException
,然后由引发
DataError
事件的框架执行转换尝试。
与包含非特定错误消息的
FormatException
不同,我希望有一个异常,它包含导致解析器实现失败的特定错误的信息,以便我可以在
DataError
事件中显示特定的错误消息从
CellParsing
处理程序中选择
我自己,但该异常不会被框架捕获,因此不会导致引发
DataError
事件(事实上,最外层的异常处理程序会终止应用程序)。

DataGridView
数据错误是一场噩梦。
最近我不得不处理很多这方面的问题,最后我放弃了,自己实现了
DataGridViewColumn
DataGridViewCell
。这样做可以避免所有解析错误,因为您可以在单元格的
ParseFormattedValue
方法中自行处理

我对所有这些的体验都很混乱,但非常有价值,因为现在我有了一个用户界面,可以将许多不同类型的数据输入到一个单元格中

您可以在我在MSDN上发布的一个问题中看到我为此编写的一些代码。

您可以调整它以匹配您自己的格式(希望您能看到它在做什么)。DataGridView
数据错误是一个需要解决的噩梦。
最近我不得不处理很多这方面的问题,最后我放弃了,自己实现了
DataGridViewColumn
DataGridViewCell
。这样做可以避免所有解析错误,因为您可以在单元格的
ParseFormattedValue
方法中自行处理

我对所有这些的体验都很混乱,但非常有价值,因为现在我有了一个用户界面,可以将许多不同类型的数据输入到一个单元格中

您可以在我在MSDN上发布的一个问题中看到我为此编写的一些代码。

你可以根据自己的格式进行调整(希望你能看到它在做什么)。

我希望你能顺利完成。如果你有任何问题,请不要犹豫发表评论,我会尽力帮助你。祝你好运!我希望你一切顺利。如果你有任何问题,请不要犹豫发表评论,我会尽力帮助你。祝你好运!