[英]Databinding Winforms Textbox
简而言之,这种数据绑定正常工作
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue");
也就是说,当我输入一个无效值 - 就像空字符串 - 然后选项卡中的TB一样,其中的值只是恢复到之前的值。 这是有道理的,因为输入的值不会进入decimal类型的object属性。 不幸的是,这些数据绑定中的任何一个:
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnPropertyChanged, 0, "C");
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnValidation, 0, "C");
行为方式不同,当用户输入空字符串时,输入将不会让用户选项卡退出文本框。 有没有办法让数据绑定显示为货币,但只是取消任何无效的编辑?
你有几个选择:
子类TextBox
并覆盖OnValidating
事件。 如果Text
为空,请在调用MyBase.OnValidating()
之前退出以禁止该事件。
在TextBox
上设置CausesValidation = False
,并处理TextChanged
事件。 如果Text
不为空,请手动验证它。
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.