验证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的反对部分?或者任何其他方式......
这是一种方法:
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中的所有控件执行此操作.如果所有控件都没有错误,我们继续保存其他中止.