使用ErrorProvider改善用户体验教材.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用ErrorProvider改善用户体验 1.ErrorProvider概述 我们经常使用WindowsForms下的ErrorProvider,这是一个.NET组件,可以在VSIDE的工具栏中找到它。Errorprovider通常用于窗体或控件的用户输入;同时它也是典型的关联型(绑定)的验证控件,用以验证并显示控件关联的数据源如DataSet中存在的错误。ErrorProvider比使用消息框(MessageBox)显示错误信息的效果好,除了摘要中提到的情况外,还因为一旦消息框关闭了错误信息也随之消失,用户可能无法记忆所有的错误内容因而也就无法方便的纠正所有错误从而要多次弹出错误消息框。而ErrorProvider会记录所有的错误并能够准确定位在错误发生的窗体或控件上,显示一个红色图标,当鼠标悬停在该图标上方时还能够自动弹出ToolTip提示以显示错误内容。这样操作人员可以根据错误发生的位置以及具体内容从容的修改错误,直到这些小图标全部消失。 2.ErrorProvider属性 ErrorProvider组件有三个关键的属性:DataSource、ContainerControl和Icon。 DataSource通常与ContainerControl相关,也就是控件绑定的数据内容,可以是DataTable,DataSet或者自定义的实体等。ErrorProvider会根据DataSource的结构进行其内部的数据验证,当然验证的规则需要开发人员定义。 ContainerControl正如其名字所言,正是ErrorProvider所依存的容器,通过为其设置适当的容器,通常是Windows窗体,就是为了Errorprovider能够在窗体上的适当位置显示错误图标。(不要忘了,ErrorProvider是一个组件,凡是组件都具备相应的特征,其中很重要的一点就是容器的概念,如果你不清楚可以从MSDN上查阅有关组件的概念,请记住组件式的开发是微软大力推荐的一种开发规范,其实J2EE的规范中也处处体现这样的思想。) Icon属性允许用户自定义图标。如果你对默认的这个小红圆圈不满意的话,没关系,你可以通过该属性用你自己的图标替换。 3.ErrorProvider常规用法 ErrorProvider的一种最简单使用方法就是当用户向某控件比如TextBox中输入无效数据时显示错误提示,这种情况下甚至不需要设置DataSource,只需要设置ContainerControl属性值为当前Form并使用SetError方法进行简单编码即可,如下所示。 protectedvoidtextBox1_Validating(objectsender, System.ComponentModel.CancelEventArgse) { try { intx=Int32.Parse(textBox1.Text); errorProvider1.SetError(textBox1,); } catch(Exceptione) { errorProvider1.SetError(textBox1,Notanintegervalue.); } } 在窗体上一个TextBox控件的验证事件处理方法中我们检查用户填入内容是否是数值,如果不是则在该TextBox控件旁显示错误图标,相应的ToolTip文本就是“Notanintegervalue”。从另外一个角度,我们也可以猜到如果要手工消除错误信息,也是通过SetError方法将提示文本设为空字符串即可。 实际上,ErrorProvider组件也可以捕获到DataSet或其他数据源的列上出现的错误,也就是说一旦将ErrorProvider绑定到数据源,不必直接关联到控件就可以在绑定相同数据源的控件上显示错误图标,代码如下。 将ErrorProvider组件绑定到一个DataTable的某一列上(使用DataSource和DataMember属性) textBox1.DataBindings.Add(Text,DataSet1,Customers.Name); errorProvider1.DataSource=DataSet1; errorProvider1.DataMember=Customers; 设置Errorprovider的ContainerControl属性 errorProvider1.ContainerControl=this; 设置包含一个列错误的某一行的位置 DataTable1.Rows[5].SetColumnError(Name,Baddatainthisrow.);//Name是列名,后面是错误提示 this.BindingContext[DataTable1].Position=5;//发

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档