繁体   English   中英

C#UserControl验证

[英]C# UserControl Validation

我有一个带有一个包含三个选项卡的选项卡控件的UserControl。 选项卡中有多个控件-日期时间选择器,文本框,组合框。

还有一个“保存”按钮,当单击该按钮时,将调用this.ValidateChildren(ValidationConstraints.Enabled)按钮this.ValidateChildren(ValidationConstraints.Enabled)现在,我单击“保存”,然后发生this.ValidateChildren(ValidationConstraints.Enabled)验证错误。 我更正了该错误,然后再次单击“保存”-在其他选项卡上的组合框上发生验证错误。 如果我导航到该选项卡并单击“保存”,则一切正常。 怎么会这样? 我没有更改组合框中的任何值,那么失败验证如何才能通过验证?

组合框通过其selectedValue和Text集绑定到数据集。 我只是不明白这里发生了什么。

对于某些文本框,也会发生此行为。 验证规则是它们必须为十进制数-默认值为零,这是允许的。 同样的事情发生了,它们第一次没有通过验证-我没有进行任何更改,再次单击“保存”,它们通过了验证。

编辑:

该错误不是Framework错误-该错误是我在验证例程期间提供的错误。 例如,选择一个有效的下拉选项。

我逐步完成了该过程,有时组合框值是默认值,而有时候selectedValue是默认值,但文本为null。 我不知道如果不更改组合框中的任何内容怎么办。

如果您需要更多信息,请告诉我

谢谢

巴里

以下是MSDN的报价:

“ TabPage中包含的控件只有在显示选项卡页后才能创建,并且这些控件中的任何数据绑定都不会激活,直到显示选项卡页为止。”

因此,我猜测,如果在您第一次按下保存之前,请确保至少单击了每个选项卡一次,它将按预期运行,但是如果在保存之前未查看所有选项卡,它失败?

您是否检查默认值不为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM