winforms中的字段验证

时间:2010-08-26 08:23:54

标签: c# winforms

验证winforms中的字段有快捷方式吗?例如,在保存记录之前需要填写特定的textBox。我一直在做的是在保存之前先以编程方式检查所有必填字段。例如:

protected bool CheckFields()
{
    bool isOk = false;
    if(textBox1.Text != String.Empty)
      {
          isOk = true;
      }
    return isOk;
} 

private void btnSave_Click(object sender, EventArgs e)
{
    if(CheckFields())
      {
          Save();// Some function to save record.
      }
}

winforms中的ASP.Net中是否存在Validator的反对部分?或者任何其他方式...

3 个答案:

答案 0 :(得分:5)

这是一种方法:

    private List<Control> m_lstControlsToValidate;
    private void SetupControlsToValidate()
    {
        m_lstControlsToValidate = new List<Control>();

        //Add data entry controls to be validated

        m_lstControlsToValidate.Add(sometextbox);
        m_lstControlsToValidate.Add(sometextbox2);

    }
   private void ValidateSomeTextBox()
   {
        //Call this method in validating event.
        //Validate and set error using error provider
   }

   Private void Save()
   {
        foreach(Control thisControl in m_lstControlsToValidate)
        {
            if(!string.IsNullOrEmpty(ErrorProvider.GetError(thisControl)))
            {                    
                //Do not save, show messagebox.
                return;
            }
        }
     //Continue save
   }

编辑:

对于m_lstControlsToValidate中的每个控件,您需要编写将在Validating事件中触发的验证方法。

ErrorProvider.GetError(thisControl)将返回一些errortext或emptystring。空字符串表示控件正常。否则控件包含一些错误,我们中止保存操作。

我们对m_lstControlsToValidate中的所有控件执行此操作。如果所有控件都没有错误,我们继续保存其他中止。

答案 1 :(得分:0)

实际上,在Win Form中,当用户使用表单时,您应该使用Control.Validating Event进行验证。但是为了保存验证您已编写代码来检查用户是否正确插入了所有数据。例如,您可以创建一个必需的TextBox,并迭代所有表单控件,查找此类控件并检查用户是否输入了一些文本。

答案 2 :(得分:0)

使用验证控件。它们是最好用的。

另外,

protected bool CheckFields()
{
    bool isOk = false;
    if(textBox1.Text != String.Empty)
      {
          isOk = true;
      }
    return isOk;
} 

可以大大缩短为:

protected bool CheckFields()
{
    return textBox1.Text != String.Empty;
}