我有一个基于 C# 的 WinForms 应用程序,其中有很多菜单,每个菜单都有多个用于用户输入的控件。所有表单都有 OK 按钮,可以处理用户给出的输入。
例如,当用户按下“确定”按钮时,我必须对所有这些控件进行验证.. 检查输入的字符串是否为数字、是否具有特定长度、是否存在等...
是否有任何可用的 C# 功能来执行此操作,而不是我必须为每个确定按钮编写完整的代码?
我有一个基于 C# 的 WinForms 应用程序,其中有很多菜单,每个菜单都有多个用于用户输入的控件。所有表单都有 OK 按钮,可以处理用户给出的输入。
例如,当用户按下“确定”按钮时,我必须对所有这些控件进行验证.. 检查输入的字符串是否为数字、是否具有特定长度、是否存在等...
是否有任何可用的 C# 功能来执行此操作,而不是我必须为每个确定按钮编写完整的代码?
您可以使用正则表达式进行验证,这是一个链接http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial
如果您不想在表单设计中输入此类代码,那么您始终可以制作自己的自定义控件,这些控件旨在以某种方式工作。
因此,例如,您可以创建一个从 TextBox 类继承的类,并且您可以覆盖此控件的事件以完全按照您的意愿执行操作。
制作您自己的控件,这些控件的设计也完全符合您的要求。这样做,您不需要在表单设计中验证输入,因为您设置了控件的行为,然后将控件放到表单上。
您将始终对用户输入进行一些验证,但您可以在表单事件中对其进行限制,这完全取决于您需要这些控件的自定义程度。
如果您希望控件限制某些键,例如 RichTextBox 中的“回车键”,或者您希望在粘贴剪贴板内容时处理剪贴板内容,则这种做法很好。您可以在课堂上而不是在您的表单中完成所有这些代码。
希望这可以帮助。
一种方法是调用Validate
或ValidateChildren
从 OK 按钮单击事件处理程序。然后,您将为Validating
每个要验证的控件提供一个事件处理程序。