C# winforms中的字段验证
验证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
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;}我不理解代码。。你能解释一下吗。。