Input for WinForms帮助文档
用户输入错误

当C1Input在解析或校验输入值时检测到一个错误,它将触发ValidationError事件。紧接着,默认情况下,它将显示一条错误信息。默认行为是可以改变的,并且以不同的方式进行定制:

C1Input控件具有一个ErrorInfo属性,包含影响错误处理的设置(ErrorInfo类的属性):

属性 描述
BeepOnError 如果设置为True,则控件会发出一声蜂鸣,以提示有错误发生。默认:False。
CanLoseFocus 如果设置为True,则控件不管是否存在错误,都允许丢失焦点。默认情况下该属性的值为False,表示控件将使中保持有焦点状态,直到错误被纠正。注意如果设置ErrorAction为SetValueOnError或者ResetValue,则会在错误发生之后重置控件的值,之后控件可以正常失去焦点。
ErrorAction 一个枚举值,决定当控件发生错误时,对控件的值进行处理。ErrorAction设置为None(默认值)意味着Value将保持不变,继续保留为失败的值更新之前的状态。如果ErrorAction设置为SetValueOnError,则控件的Value属性将设置为在ErrorInfo类上的ValueOnError属性指定的值。如果ErrorAction设置为ResetValue,则控件的值将设置为控件进入编辑态之前的值。设置ErrorAction属性为ThrowException将中断程序执行,并抛出一个异常,异常的类型为ValidationException。
ErrorMessage 错误信息显示在标准的消息对话框和/或者在异常信息中。
ErrorMessageCaption 显示在错误消息对话框标题栏上的文本。
ErrorProvider 获取或设置一个ErrorProvider对象,用来指示控件的错误状态。
ShowErrorMessage 如果设置为True(默认值),则显示标准的错误消息。
ValueOnError 如果ErrorAction设置为SetValueOnError,用来重置控件的值。
ValueOnErrorIsDbNull 一个布尔类型的属性,用作设置ValueOnError为DBNull(仅在设计时有用)。

除此之外,ErrorInfo.ErrorMessage可以被特定的动作指定:编辑掩码错误(MaskInfo.ErrorMessage),解析(ParseInfo.ErrorMessage),pre-以及post-校验(PreValidation.ErrorMessage,PostValidation.ErrorMessage)。如果一个特定的错误消息没有在这些子对象中指定,则控件上的ErrorInfo.ErrorMessage将生效。注意,您如果您设置ErrorProvider属性为一个ErrorProvider组件,同时设置ShowErrorMessage为False,则可以使用ErrorProvider的图标显示错误,而不再是显示一个消息对话框。
 

以上所列举的属性,一旦设置在控件的ErrorInfo对象上,将影响该控件全部的错误处理。当错误发生时,这些值可以通过编程方式自定义以处理特定的错误。这通过传递ErrorInfo参数至ValidationError事件实现。传递给ValidationError事件的ErrorInfo参数是控件上ErrorInfo对象的一个副本,包含了其全部的属性设置。它是一个独立的副本,因此您可以修改位于事件参数中的ErrorInfo对象的属性,仅针对当前的错误,而不会影响控件整体的ErrorInfo设置。通过设置ValidationError事件中的ErrorInfo属性,您可以指定如何处理错误。例如,您可以通过设置ShowErrorMessage属性值为False,以禁止标准的错误消息(作为替代,显示您自己的消息通知),或者您可以修改ValueOnError(设置ErrorAction为SetValueOnError),在或者修改ErrorMessage的内容。请记住,您必须设置传递给ValidationError事件的ErrorInfo参数,而不是控件上的ErrorMessage属性。

在ValidationError事件之后,错误处理将按照在事件参数中指定的ErrorInfo参数的值进行处理。如果ErrorAction设置为ThrowException,则将抛出一个异常(使用ErrorMessage属性的文本)。如果BeepOnError设置为True,则控件发出一声蜂鸣。如果ShowErrorMessage设置为True,则将显示标准的错误消息(使用ErrorMessage的文本)。在此之后,控件的值可能会发生变化,依照ErrorAction指定的行为。最后,如果校验是由于尝试移动焦点至其他控件的行为所触发,移动焦点至其他控件的行为要么会取消,要么允许,按照CanLostFocus的不同设置。如果ErrorProvider属性设置为一个ErrorProvider组件,该组件将用作显示如果errorprovidererrorprovider属性设置为一个组件,该组件将在出错的控件附近显示一个错误图标,同时具有一个ErrorMessage信息的工具提示(调用ErrorProvider.SetError方法)。

如果您通过编程方式在某个事件的处理代码中执行了解析或者校验,并且在离开该事件处理函数时返回了一个错误条件(设置事件的Succeed参数为False),您可以描述该错误,并可以通过设置传递给该事件的ErrorInfo参数的属性指定如何处理该错误。类似的事件参数由以下事件提供:PreValidating,Parsing以及PostValidating。其初始值来自于控件的ErrorInfo属性。您在事件中修改的ErrorInfo参数在之后将传递给ValidationError事件,在此您可以像以上提到的那样对其做进一步的修改。

 

 


产品网站:http://www.gcpowertools.com.cn  |  咨询热线:4006576008   |   ©2015 西安葡萄城

GCDN(葡萄城产品技术社区)