C# winforms中的字段验证

C# winforms中的字段验证,c#,winforms,validation,C#,Winforms,Validation,验证winforms中的字段是否有快捷方式?例如,在保存记录之前,需要填写特定的文本框。我通常做的是,在保存之前,先通过编程检查所有必填字段。例如: protected bool CheckFields() { bool isOk = false; if(textBox1.Text != String.Empty) { isOk = true; } return isOk; } private void btnSave_Cl

验证winforms中的字段是否有快捷方式?例如,在保存记录之前,需要填写特定的文本框。我通常做的是,在保存之前,先通过编程检查所有必填字段。例如:

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中是否有验证器的计数器部分?或者任何其他方式…

不太可能,在Win表单中,当用户处理表单时,您应该使用进行验证。但为了保存验证,您需要编写代码来检查用户是否正确插入了所有数据。例如,您可以创建一个必需的文本框,并遍历所有表单控件以查找这种类型的控件,并检查用户是否输入了一些文本

这里有一种方法:

    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
   }
私有列表mlstcontrolstovalidate;
私有void SetupControlsToValidate()
{
m_lstControlsToValidate=新列表();
//添加要验证的数据输入控件
mlstcontrolstovalidate.Add(sometextbox);
mlstcontrolstovalidate.Add(sometextbox2);
}
私有void validateMetextBox()
{
//在验证事件中调用此方法。
//使用错误提供程序验证并设置错误
}
私有void Save()
{
foreach(在MlstControlsToValidate中控制此控件)
{
如果(!string.IsNullOrEmpty(ErrorProvider.GetError(thisControl)))
{                    
//不保存,显示messagebox。
返回;
}
}
//继续保存
}
编辑:

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

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


我们在Mlstcontrolstovalidate中的所有控件上执行此操作。如果所有控件都没有错误,我们将继续执行save else abort。

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

而且

protected bool CheckFields()
{
    bool isOk = false;
    if(textBox1.Text != String.Empty)
      {
          isOk = true;
      }
    return isOk;
} 
可大幅缩短至:

protected bool CheckFields()
{
    return textBox1.Text != String.Empty;
} 
如果(!string.IsNullOrEmpty(ErrorProvider.GetError(thisControl)){//不保存,请显示messagebox.return;}我不理解代码。。你能解释一下吗。。