【问题标题】:c# exception handling in textboxesc# 文本框中的异常处理
【发布时间】:2018-08-31 06:22:09
【问题描述】:

我正在尝试在 C# 中找到一种解决方案,以使用 Windows 窗体对多个文本框执行异常处理。

用户只能在这些文本框中输入一个或两个正整数,如果用户尝试输入更多数字或字母,应该会出现一个带有警告消息的工具提示?

感谢您的帮助!

【问题讨论】:

  • 您的意思是要验证用户输入,对吗?好吧,这完全取决于您使用的 UI 框架(Windows.Forms?WPF/UWP?)最好将相应的标签添加到您的问题中,以明确它是关于 WinForms 还是 WPF...跨度>
  • 那么是什么阻止您找到解决方案?你的电脑有问题吗?你根本不懂C#?你知道一些 C# 但是......什么?你得到一个错误?发布您的代码。发布错误消息。并解释“异常处理”与任何事情有什么关系;检测用户是否在文本框中输入数字或字母不需要异常处理。
  • @DourHighArch:你的意思是除了 .NET 框架庞大而且他甚至不知道谷歌的正确术语吗?我有一个可能的答案,但我不知道如何调用模式。
  • 好的,是的,C# 中的基本 try-catch-statements 相当简单。我正在使用 C# 和 binaryreader/writer 中的 windows 窗体构建一个应用程序。我的主要观点是捕获用户可能输入的无效值,然后尝试将转换为字节的无效文本输入写回原始文件。目前,我得到了我试图避免的可怕的 StackOverflow 异常。
  • 我的意思是系统溢出异常

标签: c# exception try-catch


【解决方案1】:

对于这种情况,我喜欢做我所谓的“被动错误报告”。您获取每个值(通常是字符串),而不是抛出异常。但如果它不符合某些标准,则显示一条消息。

简单的方法是INotifyDataError。它允许您为每个属性显示一个错误(在后端存储中使用属性或字符串键是有利的)。

我知道有一个更复杂的兄弟允许每个属性/键出现多个错误。但是因为太久没看到它的名字,所以记不住了。

【讨论】:

  • 这本身不会显示 Windows 窗体的工具提示。
  • @RonBeyer:它为您提供了检测错误的基本框架(并在它们发生变化时得到通知)。然后您可以根据自己的喜好或 UI 需求进行可视化:标签、工具提示等。
  • @celtics33 你不是一个flat Earther吗?
猜你喜欢
  • 1970-01-01
  • 2012-06-10
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2011-04-27
相关资源
最近更新 更多