当前位置:  开发笔记 > 开发工具 > 正文

数据绑定TextBox:无法退出

如何解决《数据绑定TextBox:无法退出》经验,为你挑选了2个好方法。

我有一个文本框绑定到表单上的对象属性(实际上是几个文本框).这是一个对象的编辑器.当我正在编辑某些对象并修改其中一个文本框中的值时,我无法从文本框中退出(既不是通过选项卡也不是单击另一个文本框).然而情况并非总是如此 - 当编辑其他对象(相同类型)时,它可以正常工作.

这是一个代码snipet:

txtValue.DataBindings.Add("Text", _SourceObject, "PlannedValue", True, DataSourceUpdateMode.OnPropertyChanged, Nothing, "c")
txtEstPlacements.DataBindings.Add("Text", _SourceObject, "EstimatedPlacementCount")
txtReference.DataBindings.Add("Text", _SourceObject, "Reference")

有什么建议?



1> orj..:

听起来像数据验证问题.检查表单上的控件是否将其CausesValidation属性设置为true或false.

还要检查表单上的AutoValidate属性.它可能设置为EnablePreventFocusChange(这是默认值).

也可能是这样的情况:文本框中提供的值无法转换为它在源数据对象上绑定的属性的类型.我相信Convert类用于此(虽然我可能在这里错了).

您可能希望在MSDN上查看本文,其中详细介绍了winforms验证.



2> Bevan..:

如果您的表单具有AutoValidate == EnablePreventFocusChange,那么您最终会将焦点停留在未通过验证的任何字段中.

请注意,如果在将值写入对象时发生异常,则认为验证失败.

尝试在属性的setter的入口点设置断点,该入口点绑定到光标卡住的控件.然后,单步查看是否引发异常.

如果断点永远不会触发,则可能在Databinding框架内发生异常.

与普遍认为相反,数据绑定框架会记录错误和其他有用信息 - 它使用System.Diagnostics命名空间的支持来执行此操作.我忘记了细节,但它们在MSDN上 - 您应该能够在应用程序运行时在Visual Studio的消息窗口中查看诊断信息.对于数据绑定的故障排除问题非常有用.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有