我有这个我期待着工作的大项目。会有很多带有大量文本框的表单,我不想在每个表单中编写代码。我想用方法创建一个类来验证这些文本框。我不知道怎么做。
我希望此方法接受文本框,例如:ValidateTextBoxForInt(textbox1)
并验证它。
我将以这种方式使用它:
return ValidateTextBoxForInt(textbox1, textbox2);
(我可能只有1个文本框,可能是100个文本框...取决于需要为int验证的文本框数量。)
任何人都可以推荐我吗?帮我这个?
谢谢:)
答案 0 :(得分:1)
您可以拥有一个继承自常规表单的自定义表单。它将有一些Validate事件,它将触发它遍历所有包含的TextBox,验证它们并提供一些帮助消息,让用户知道错误。
通过TextBoxes进行枚举时,不要忘记Form.Controls是树,而不是列表,因此您可能需要先递归或展平此树,以考虑面板内的TextBoxes,制表符控件等。
答案 1 :(得分:0)
创建一个验证器类并调用它传入一个控件,该控件是所有TextBox
控件的父控件,例如Panel:
public class Validator
{
public bool ValidateAsInt(Control control)
{
bool valid = true;
if (control.GetType() == typeof(TextBox))
{
int outVal = 0;
if (0 == int.TryParse(((TextBox)control).Text, outVal))
{
valid = false;
}
}
if (valid)
{
foreach (Control childControl in control.Controls)
{
if (!ValidateAsInt(childControl))
{
valid = false;
break;
}
}
}
return valid;
}
}