winforms中的字段验证

yon*_*236 4 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.
      }
}
Run Code Online (Sandbox Code Playgroud)

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

Ase*_*tam 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
   }
Run Code Online (Sandbox Code Playgroud)

编辑:

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

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

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