验证或验证事件?

时间:2013-08-31 05:19:57

标签: c# winforms

我有一些文本框数据绑定到BindingSource到自定义业务对象。数据绑定按以下代码完成 -

  txtBookNo.DataBindings.Add("Text", bs, "BookNo", true, DataSourceUpdateMode.OnPropertyChanged, null, "G", GlobalVariables.CurrentCultureInfo);

现在我想验证用户输入。哪个事件最适合此目的 - Textbox.Validating或Textbox.Validated?那么,DatasourceUpdateMode- OnPropertyChanged或OnValidation应该是什么?

感谢。

2 个答案:

答案 0 :(得分:9)

  • Validating在验证过程开始之前被触发,这是放置实际验证代码的地方。
  • 验证过程完成后,
  • Validated被触发,并根据验证结果设计为某个位置。

如果使用DataSourceUpdateMode.OnPropertyChanged,则:

  

只要控件属性的值发生更改,就会更新数据源。

如果使用DatasourceUpdateMode.OnValidation,则:

  

验证控件属性时会更新数据源,   验证后,控件属性中的值也将重新格式化。

如果您只希望将有效(即已经过代码验证的数据)数据发送到您的自定义业务对象,请使用DataSourceUpdateMode.OnValidation

Here是一篇解释如何在Windows窗体中进行验证的文章。

答案 1 :(得分:1)

Textbox.Validating或Textbox.Validated?

documentation上有解释。 Textbox.Validating 是放置验证流程的最佳位置。

private void textBox1_Validating(object sender, 
            System.ComponentModel.CancelEventArgs e)
{
   string errorMsg;
   bool valid = /*do some validation*/;
   if(!valid)
  {
     // to cancel validating
     e.Cancel = true;
  }
}
相关问题