.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上发布的一个问题中看到我为此编写的一些代码。你可以根据自己的格式进行调整(希望你能看到它在做什么)。我希望你能顺利完成。如果你有任何问题,请不要犹豫发表评论,我会尽力帮助你。祝你好运!我希望你一切顺利。如果你有任何问题,请不要犹豫发表评论,我会尽力帮助你。祝你好运!