WEB开发网
开发学院软件开发C语言 Effective C# 原则39:使用.Net验证 阅读

Effective C# 原则39:使用.Net验证

 2009-02-19 08:15:40 来源:WEB开发网   
核心提示: private void buttonOK_Click( object sender,System.EventArgs e ){// Validate everyone:// Here, this.DialogResult will be set to// DialogResult.OKV

private void buttonOK_Click( object sender,
 System.EventArgs e )
{
 // Validate everyone:
 // Here, this.DialogResult will be set to
 // DialogResult.OK
 ValidateAllChildren( this );
}
private void ValidateAllChildren( Control parent )
{
 // If validation already failed, stop checking.
 if( this.DialogResult == DialogResult.None )
  return;
 // For every control
 foreach( Control c in parent.Controls )
 {
  // Give it focus
  c.Focus( );
  // Try and validate:
  if (!this.Validate( ))
  {
   // when invalid, don't let the dialog close:
   this.DialogResult = DialogResult.None;
   return;
  }
  // Validate children
  ValidateAllChildren( c );
 }
}

这些代码可以处理大多数情况。一个特殊的快捷应用就是DataGrid/DataSet的组合。在设计时指定ErrorProvider的DataSource以及DataMember属性:

ErrProvider.DataSource = myDataSet;
ErrProvider.DataMember = "Table1";

或者在运行时,调用BindToDataAndErrors 方法来同时设置:

ErrProvider.BindToDataAndErrors( myDataSet, "Table1" );

错误会在设置DataRow.RowError 属性以及调用DataRow.SetColumnError 方法时显示特殊的错误。ErrorProvider 会在DataGrid的原始的行上的特殊单元格里显示红色的警告图标。

大概的了解(whirlwind tour)了一下.net框架里的控件验证,这可能对你很有帮助,在很多应用程序中,你都可以创建出你所须要的高效验证。用户的输入不能完全信任:用户可能会出现错误,而且有时会有一些恶意的用户试图破坏你的应用程序。通过.Net框架已经提供的服务,你可以减少你自己的代码编写工作。验证所有用户的输入,但要使用已经提供了的高效工具。

上一页  1 2 3 4 

Tags:Effective 原则 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接